Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在从ASP.Net设置标识\u插入关闭_Asp.net_Sql Server_Transactions_Identity Column - Fatal编程技术网

正在从ASP.Net设置标识\u插入关闭

正在从ASP.Net设置标识\u插入关闭,asp.net,sql-server,transactions,identity-column,Asp.net,Sql Server,Transactions,Identity Column,我正在编写一个基于web的导入程序,将数据从一个数据库导入到另一个数据库。由于数据被加载到具有标识的表中,因此我需要在执行insert语句之前启用标识插入。我生成需要在列表中运行的SQL语句,我要做的是在循环执行命令之前将IDENTITY_INSERT设置为ON,然后在完成后将其设置为back off。我将一次执行一个命令,因为我希望跟踪哪些命令失败 在开始循环之前,我尝试在上执行SET IDENTITY_INSERT[TABLE NAME],但这不起作用 我如何才能完成我要做的事情,或者有人有

我正在编写一个基于web的导入程序,将数据从一个数据库导入到另一个数据库。由于数据被加载到具有标识的表中,因此我需要在执行insert语句之前启用标识插入。我生成需要在列表中运行的SQL语句,我要做的是在循环执行命令之前将IDENTITY_INSERT设置为ON,然后在完成后将其设置为back off。我将一次执行一个命令,因为我希望跟踪哪些命令失败

在开始循环之前,我尝试在上执行SET IDENTITY_INSERT[TABLE NAME],但这不起作用


我如何才能完成我要做的事情,或者有人有其他想法吗?

执行
设置标识\u插入
选项需要提升权限,请检查您的用户是否满足以下条件之一:
用户必须拥有该对象,或者是固定服务器角色的成员,或者是固定数据库角色的成员

SQL 2k8 BOL状态在任何时候,会话中只有一个表的IDENTITY_INSERT属性可以设置为ON。如果一个表已将此属性设置为“开”,并且为另一个表发出了set IDENTITY_INSERT ON语句,SQL Server将返回一条错误消息,说明set IDENTITY_INSERT已打开,并报告为其设置的表。”


因此,我想,您需要在循环结束时将其设置为OFF?

编辑您的问题以包含代码。您可以发布您的代码吗?我看不出这不起作用的任何原因?您的语句中是否包含架构所有者?如果表不在dbo架构下,您肯定会要求设置。set Identity\u Insert xxx.tablenam当我在执行每个语句之前添加SET IDENTITY\u INSERT时,它可以正常工作,因此我认为这不是问题所在。如果db用户有权运行db INSERT,那么这可能与您如何从.NET发送命令有关。我们需要您的代码对此提供建议