事件
3月31日 下午11時 - 4月2日 下午11時
最大的 SQL、網狀架構和 Power BI 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊適用於:SQL Server
從目前資料庫中的數據行或別名數據類型解除系結規則。
重要
SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 建議您改用 ALTER TABLE 或 CREATE TABLE 語句中的 DEFAULT 關鍵詞來建立預設定義。
sp_unbindrule
[ @objname = ] N'objname'
[ , [ @futureonly = ] 'futureonly' ]
[ ; ]
數據表和數據行的名稱,或規則從中取消系結的別名數據類型。 @objname為 nvarchar(776),沒有預設值。 SQL Server 會先嘗試將兩部分識別符解析為數據行名稱,然後再解析為別名數據類型。 從別名數據類型解除系結規則時,具有相同規則之數據類型的任何數據行也會解除系結。 系結至這些數據類型之規則的數據行不會受到影響。
注意
@objname可以包含括號[]
做為分隔標識符字元。 如需詳細資訊,請參閱 資料庫標識符。
只有在將規則與別名數據類型解除系結時使用。 @futureonly為 varchar(15),預設值為 NULL
。 當@futureonly 為futureonly
時,該數據類型的現有數據行不會遺失指定的規則。
0
(成功) 或 1
(失敗)。
若要顯示規則的文字,請使用規則名稱作為 參數來執行 sp_helptext
。
當規則未系結時,如果規則系結至數據行,則會從 sys.columns
數據表中移除系結的相關信息,如果規則系結至別名數據類型,則會從 sys.types
數據表中移除。
當規則從別名數據類型取消系結時,它也會從具有該別名數據類型的任何數據行取消系結。 規則可能仍然系結至數據行,其數據類型後來由 ALTER TABLE 語句的 ALTER COLUMN 子句變更,您必須使用 並指定數據行名稱,明確地解除系結這些數據 sp_unbindrule
行的規則。
若要將規則從數據表數據行解除系結,需要數據表的 ALTER 許可權。 若要從別名數據類型解除系結規則,需要類型所屬架構的CONTROL許可權或ALTER許可權。
下列範例會將規則與 startdate
數據表的數據 employees
行解除系結。
EXEC sp_unbindrule 'employees.startdate';
下列範例會將規則與別名數據類型 ssn
解除系結。 它會從該類型的現有和未來數據行解除系結規則。
EXEC sp_unbindrule ssn;
下列範例會將規則與別名數據類型 ssn
解除系結,而不會影響現有的 ssn
數據行。
EXEC sp_unbindrule 'ssn', 'futureonly';
下列範例示範在 @objname 參數中使用分隔標識碼。 請注意句點做為數據表名稱的一部分。 在 sp_bindrule
部分,物件包含兩個句點;第一個句號是數據表名稱的一部分,而第二個會區分數據表名稱與數據行名稱。
CREATE TABLE [t.4] (c1 int);
GO
CREATE RULE rule2 AS @value > 100;
GO
EXEC sp_bindrule rule2, '[t.4].c1'
GO
EXEC sp_unbindrule '[t.4].c1';
事件
3月31日 下午11時 - 4月2日 下午11時
最大的 SQL、網狀架構和 Power BI 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊