Sql server 如何在SQL Server级别启用标识插入

Sql server 如何在SQL Server级别启用标识插入,sql-server,database,database-administration,Sql Server,Database,Database Administration,文中 它说: 插入包含显式表达式的行时,INSERT EXEC不起作用 将标识值放入具有标识列和标识插入的表中 在SQL Server中默认情况下关闭 这意味着可以在SQL Server中默认设置IDENTITY_INSERT,并以相同的方式在上进行设置。 有人知道如何实现这一点吗?您必须为任何要插入的表启用它,如: SET IDENTITY_INSERT [dbo].[tablename] ON 完成标识插入后,必须禁用它 SET IDENTITY_INSERT [dbo].[tablena

文中 它说:

插入包含显式表达式的行时,INSERT EXEC不起作用 将标识值放入具有标识列和标识插入的表中 在SQL Server中默认情况下关闭

这意味着可以在SQL Server中默认设置IDENTITY_INSERT,并以相同的方式在上进行设置。
有人知道如何实现这一点吗?

您必须为任何要插入的表启用它,如:

SET IDENTITY_INSERT [dbo].[tablename] ON
完成标识插入后,必须禁用它

SET IDENTITY_INSERT [dbo].[tablename] OFF
禁用后,可以为另一个表启用它

请参见此处了解您不需要的信息。委员会确认:

设置标识\u插入(Transact-SQL) 允许将显式值插入表的标识列

评论 在任何时候,会话中只有一个表可以将IDENTITY\u INSERT属性设置为ON。如果一个表已经将此属性设置为ON,并且为另一个表发出set-IDENTITY\u INSERT ON语句,SQL Server返回一条错误消息,指出SET IDENTITY_INSERT已启用,并报告为其设置的表

如果插入的值大于表的当前标识值,SQL Server将自动使用新插入的值作为当前标识值

SET IDENTITY_INSERT的设置是在执行或运行时设置的,而不是在解析时设置的

强调我的


如果您需要在多个表上启用它,则必须在一个表上启用它,禁用它,然后在下一个表上启用它,等等。

因此这意味着
-不,这意味着“在服务器端”。如文件所述,一次只能为一个表启用标识插入。是的,这也是我在回答中的目的,但在我完成我的回答之前,你已经发布了你的,所以+1.