Smi*_*ley 2 identity identity-column sql-server-2008-r2
我的查询遇到问题。基本上,我想做的是清空一个表,然后从另一个数据库中的同一个表中复制记录。
我确实使用SET IDENTITY_INSERT代码来确保在执行插入之前关闭标识列。但不知何故,它仍然向我抛出错误消息:
消息 8101,级别 16,状态 1,第 3 行
仅当使用列列表且 IDENTITY_INSERT 为 ON 时,才能指定表“dbo.UI_PAGE”中标识列的显式值。
以下是我的查询:
DELETE FROM [DB1].[dbo].[MY_TABLE]
SET IDENTITY_INSERT [DB1].[dbo].[MY_TABLE] ON
INSERT INTO [DB1].[dbo].[MY_TABLE]
SELECT *
FROM [DB2].[dbo].[MY_TABLE]
SET IDENTITY_INSERT [DB1].[dbo].[MY_TABLE] OFF
Run Code Online (Sandbox Code Playgroud)
有人能指出我哪一步做错了吗?
多谢!
使用 IDENTITY INSERT ON 插入时必须指定所有列名 使用 INSERT INTO 时
INSERT INTO [DB1].[dbo].[MY_TABLE](TabelID,Field1,Field2,Field3...)
SELECT * FROM [DB2].[dbo].[MY_TABLE]
Run Code Online (Sandbox Code Playgroud)
如果您不知道 ssms 中有一个漂亮的小技巧。如果选择一个表并展开其节点,您可以在“列”节点上按 ctrl-c 复制,这会将逗号分隔的字段名称列表放置在剪贴板文本缓冲区中。
| 归档时间: |
|
| 查看次数: |
6514 次 |
| 最近记录: |