sql-server – 在SQL表中添加主键列
发布时间:2020-12-12 16:44:53 所属栏目:MsSql教程 来源:网络整理
导读:我是RDBMS的学生. 我有非常基本的问题让我们说SQL Server中有一个现有的表.什么将是脚本来改变表. 删除列’RowId'(如果存在). 如果存在则丢弃约束. 在表中添加一个新列“RowId”. 将此列作为主键. Autoincrement type int. 解决方法 在SQL Server 2005或更高
我是RDBMS的学生.
我有非常基本的问题让我们说SQL Server中有一个现有的表.什么将是脚本来改变表. >删除列’RowId'(如果存在). 解决方法在SQL Server 2005或更高版本中,您可以使用此脚本:-- drop PK constraint if it exists IF EXISTS (SELECT * FROM sys.key_constraints WHERE type = 'PK' AND parent_object_id = OBJECT_ID('dbo.YourTable') AND Name = 'PK_YourTable') ALTER TABLE dbo.YourTable DROP CONSTRAINT PK_YourTable GO -- drop column if it already exists IF EXISTS (SELECT * FROM sys.columns WHERE Name = 'RowId' AND object_id = OBJECT_ID('dbo.YourTable')) ALTER TABLE dbo.YourTable DROP COLUMN RowId GO -- add new "RowId" column,make it IDENTITY (= auto-incrementing) ALTER TABLE dbo.YourTable ADD RowId INT IDENTITY(1,1) GO -- add new primary key constraint on new column ALTER TABLE dbo.YourTable ADD CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED (RowId) GO 当然,这个脚本可能仍然失败,如果其他表引用这个dbo.YourTable使用外键约束到预先存在的RowId列… 更新:当然,在我使用dbo.YourTable或PK_YourTable的任何地方,你必须用你自己的数据库替换这些占位符与实际的表/约束名称(你没有提到他们是什么,在你的问题….. ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- HLR (Home Location Register):归属位置寄存器
- mssqlserver服务启动后又停止了.一些服务自动停止
- 来自postgres数据库的sshd中的虚拟用户
- 转SQLServer和Oracle的常用函数对比
- MSSQLSERVER 9954 错误的解决方案(转)
- 从SQL中的一列字符串中获取最常用的单词
- 如何让emacs sql-mode使用mysql配置文件(.my.cnf)?
- Keepalived+HAProxy实现MySQL高可用负载均衡的配置
- SQLServer2005/在被引用表 'tab2' 中没有与外键 &#
- sql – 在SELECT查询中使用TOP 1的性能效果