cdu*_*dub 3 sql sql-server sql-server-2005 primary-key
我有以下SQL:
ALTER TABLE dbo.PS_userVariables DROP CONSTRAINT PK_PS_userVariables;
ALTER TABLE dbo.PS_userVariables ADD PRIMARY KEY (varnumber, subjectID, userID, datasetID, listid, userVarTitle);
Run Code Online (Sandbox Code Playgroud)
由于我有多个环境,因此PK_PS_userVariables约束名称在我的不同数据库中是不同的.如何编写获取该名称的脚本然后将其添加到我的脚本中?
Aar*_*and 11
虽然典型的最佳实践是始终明确命名约束,但您可以从目录视图中动态获取它们:
DECLARE @table NVARCHAR(512), @sql NVARCHAR(MAX);
SELECT @table = N'dbo.PS_userVariables';
SELECT @sql = 'ALTER TABLE ' + @table
+ ' DROP CONSTRAINT ' + name + ';'
FROM sys.key_constraints
WHERE [type] = 'PK'
AND [parent_object_id] = OBJECT_ID(@table);
EXEC sp_executeSQL @sql;
ALTER TABLE dbo.PS_userVariables ADD CONSTRAINT ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12547 次 |
| 最近记录: |