Dim*_*nev 10 sql sql-server constraints
我用脚本在我的表上创建了一些约束而没有指定约束名.结果,我最终遇到了限制FK__DOC_OBGS___kntr___54E63309
,例如.
是否可以在不指定确切约束名称的情况下删除约束?
例如,像这样的东西(不起作用)
ALTER TABLE DOC_OBGS_10 DROP CONSTRAINT LIKE 'FK__DOC_OBGS___kntr%'
Run Code Online (Sandbox Code Playgroud)
问题是我们有很多数据库与这个表,我需要从表中删除所有约束,但显然每个表的名称是不同的.
SQL中的DDL命令不与like运算符配合使用.
但是,您可以使用information_schema视图并轻松地为drop constraint命令构建SQL,如下所示:
SELECT 'ALTER TABLE DOC_OBGS_10 DROP CONSTRAINT ' + CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_NAME LIKE 'FK__DOC_OBGS___kntr%'
Run Code Online (Sandbox Code Playgroud)
DECLARE @sql1 NVARCHAR(MAX);
SELECT @sql1 = c
FROM
(
SELECT 'ALTER TABLE DOC_INVS_1 DROP CONSTRAINT ' + CONSTRAINT_NAME + '; '
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'DOC_INVS_1'
and CONSTRAINT_NAME LIKE 'FK__DOC_INVS___kntr%'
) T(c);
EXEC(@sql1);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2973 次 |
最近记录: |