我创建了一个以employee id
作为标识列的表。现在,我想删除标识并将数据类型替换为bigint。我正在使用Sql Compact版。怎么做到这一点?
答案 0 :(得分:3)
我不相信您可以使用TSQL从列中删除IDENTITY属性。 代替:
您可以在表格的“设计”视图中的SSMS中执行此操作。我相信它在幕后做了类似的事情。
<强>更新强> 要确认,在SSMS 2K8中,当您尝试从列中删除IDENTITY属性然后保存它时,它将实际重新创建表(您可以通过在SQL事件探查器中进行监视来查看它的确切功能)。要在SSMS中执行此操作,您需要确保在Tools-&gt;中关闭“防止需要重新创建表的保存更改”选项。选项 - &gt;设计师 - &gt;表和数据库设计师。我认为它默认为ON,否则会在尝试执行此操作时导致错误消息。
答案 1 :(得分:0)
在“真正的”SQL Server中,您必须执行以下步骤 - 不确定SQL Server CE是否允许这样做,但请尝试一下!我假设你也可能对该列有PRIMARY KEY约束 - 对吗?如果没有,您不需要执行第一步和最后一步。而且我假设您想再次在列上使用IDENTITY,对吧?
-- DROP the primary key constraint (if you have that on your column)
ALTER TABLE dbo.Employees
DROP CONSTRAINT PK__Employees__3214EC274222D4EF
-- ALTER the datatype into BIGINT
ALTER TABLE dbo.Employees
ALTER COLUMN Employee_ID BIGINT
-- set PK constraint again
ALTER TABLE dbo.Employees
ADD CONSTRAINT PK_Employees PRIMARY KEY(Employee_ID)
答案 2 :(得分:0)