3
A
回答
6
不幸的是,你不能在现有的表上将字段更改为IDENTITY
。
你应该:
- 创建与
IDENTITY
场 - 问题
SET IDENTITY_INSERT ON
新表新表 - 将数据插入到新表
- 问题
SET IDENTITY_INSERT OFF
为新表 - 丢弃旧表
- 将新表重命名为旧名称。
您可以使用SSMS
更改字段类型,它会在幕后为您做所有这些。
下面是一个示例表:
CREATE TABLE plain (id INT NOT NULL PRIMARY KEY)
INSERT
INTO plain
VALUES (1000)
和SSMS
生成的脚本:
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_plain
(
id int NOT NULL IDENTITY (1, 1)
) ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_plain SET (LOCK_ESCALATION = TABLE)
GO
SET IDENTITY_INSERT dbo.Tmp_plain ON
GO
IF EXISTS(SELECT * FROM dbo.plain)
EXEC('INSERT INTO dbo.Tmp_plain (id)
SELECT id FROM dbo.plain WITH (HOLDLOCK TABLOCKX)')
GO
SET IDENTITY_INSERT dbo.Tmp_plain OFF
GO
DROP TABLE dbo.plain
GO
EXECUTE sp_rename N'dbo.Tmp_plain', N'plain', 'OBJECT'
GO
ALTER TABLE dbo.plain ADD CONSTRAINT
PK__plain__3213E83F1A609306 PRIMARY KEY CLUSTERED
(
id
) WITH(STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
COMMIT
2
转到在SQL Server对象资源管理器的表对象右击表说修改,比上一个字段,它是要转换身份的主键单击,比下面你会看到列属性,那么你需要改变为(是身份证)是和身份标识增量1.
相关问题
- 1. 将行转换为列SQL Server,T-SQL
- 2. SQL Server将行转换为列
- 3. 将列转换为SQL Server中的行
- 4. 将行转换为列SQL Server 2012
- 5. 将行转换为列sql server
- 6. SQL Server将列转换为行
- 7. SQL Server- PIVOT表。将行转换为列
- 8. SQL Server列转换
- 9. 如何列转换为列在SQL Server
- 10. 如何将行值转换为SQL Server 2008中的列标题?
- 11. Sql server:如何将PIVOT行转换为列标题?
- 12. SQL将行转换为列
- 13. SQL将行转换为列
- 14. 将SQL列转换为行
- 15. SQL将行转换为列
- 16. 将sql行转换为列
- 17. 如何将varchar列转换为SQL SERVER中的位列
- 18. 如何将多个列转换为单列在SQL Server
- 19. 在SQL Server中将datetime列转换为datetime2列?
- 20. 转换列行和SQL Server
- 21. 转换列行的SQL Server
- 22. 转换排列在SQL Server
- 23. 行转换为sql server 2005中的列?
- 24. sql将行转换为sql server 2008r2中的列
- 25. 转换行到列列排在SQL Server
- 26. SQL Server:“无法将NULL值插入列” - 关于标识列
- 27. 将MySQL转换为SQL Server
- 28. 将SQL Server转换为Oracle
- 29. 将ORA_HASH转换为SQL Server
- 30. SQL Server:将行转置为列
@Quassnoi - +1值得一提的是,为了将数据插入到新的Identity列中,OP将不得不使用'SET IDENTITY_INSERT ON | OFF' – codingbadger 2010-09-01 10:05:30
@Barry:好的一点,谢谢 – Quassnoi 2010-09-01 10:08:41
为什么我需要SET IDENTITY_INSERT终于关了?我想我需要在桌面上启用身份列。我应该打开它? – George2 2010-09-01 10:17:44