Sql server 在多个表上设置enable indentity insert,其中一些表已在上具有id

Sql server 在多个表上设置enable indentity insert,其中一些表已在上具有id,sql-server,ssms,Sql Server,Ssms,我想把数据导入数据库。 为了做到这一点,我需要设置插入的身份。 为500多个表设置此编辑映射不是一个选项 所以我找到了这个 但其中一些表已经将其设置为ON,因此将其放在一个查询中会在一个错误语句上产生错误并停止。 如何强制它忽略错误结束转到下一个语句,直到它尝试为所有表设置它?如何导入数据?你可能想看看 每个会话一次只能打开一个表。如果需要,可以使用此查询生成脚本,以关闭每个适用表的IDENTITY_INSERT select N'SET IDENTITY_INSERT ' + quo

我想把数据导入数据库。 为了做到这一点,我需要设置插入的身份。 为500多个表设置此编辑映射不是一个选项

所以我找到了这个

但其中一些表已经将其设置为ON,因此将其放在一个查询中会在一个错误语句上产生错误并停止。
如何强制它忽略错误结束转到下一个语句,直到它尝试为所有表设置它?

如何导入数据?你可能想看看

每个会话一次只能打开一个表。如果需要,可以使用此查询生成脚本,以关闭每个适用表的IDENTITY_INSERT

select 
    N'SET IDENTITY_INSERT ' + quotename(s.name) + N'.' + quotename(o.name) + N' OFF'
from 
    sys.objects o
        inner join sys.schemas s on s.schema_id = o.schema_id
        inner join sys.columns c on c.object_id = o.object_id
where 
    o.type = 'U' and
    c.is_identity = 1

-适用于sql server 2005及更高版本 开始尝试

   set identity_insert (table 1 name) on
end try

begin catch

    print ' table 1 already on'
end catch

 begin try

   set identity_insert (table 2 name) on

end try

begin catch

    print ' table 2 already on'

end catch