我已经研究并尝试了所有的东西,我不知道我是否遗漏了一些东西,但这里是我试图放弃主键
Alter Table Course
Drop constraint PK_Course_CourseID
Go
表名为Course
,PK为CourseID
。然后我需要将PK约束重新添加到列“row”
答案 0 :(得分:0)
删除主键约束:
在对象资源管理器中,右键单击包含主键的表,然后单击“设计”。
该表在表设计器中打开。
在表格网格中,右键单击包含主键的行,然后选择“删除主键”以将设置从“开”切换为“关闭”。
来源: https://msdn.microsoft.com/en-us/library/ms190621(v=sql.105).aspx
答案 1 :(得分:0)
删除主键:
DECLARE @table NVARCHAR(512), @sql NVARCHAR(MAX);
SELECT @table = N'dbo.Course';
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.Course
ALTER COLUMN YourColumnName INT
添加PK
ALTER TABLE Course ADD PRIMARY KEY (id)
希望这有帮助!
答案 2 :(得分:0)
DECLARE @V_CONSTRAINTNAME NVARCHAR(256);
DECLARE @V_QUERY NVARCHAR(1000);
BEGIN
SELECT @V_CONSTRAINTNAME = constraint_name FROM INFORMATION_SCHEMA.table_constraints
WHERE table_name =&# 39;课程'
AND constraint_type =' PRIMARY KEY&#39 ;;如果@V_CONSTRAINTNAME不是NULL
开始设置@V_QUERY =' ALTER TABLE #DBNAME#。#USERNAME#.Course DROP CONSTRAINT' + @V_CONSTRAINTNAME;
exec sp_executesql @V_QUERY;
END;
结束
GO
DECLARE @V_COUNT INT;
BEGIN
SET @V_COUNT = 0;
SELECT @V_COUNT = COUNT(*)FROM INFORMATION_SCHEMA.table_constraints WHERE TABLE_NAME ='当然' AND CONSTRAINT_TYPE =' PRIMARY KEY';
如果@V_COUNT = 0
开始执行SP_EXECUTESQL N' ALTER TABLE #DBNAME#。#USERNAME#.Course ADD CONSTRAINT PK_Course_CourseID PRIMARY KEY(行)&#39 ;;
END;
END;
GO