[英]SQL Server 17, database migration, function for setting identity in primary key
如果我没有误会,您正在使用外部实用程序执行此迁移。 在这种情况下,您可以执行SET IDENTITY_INSERT [dbo].[YourTable] ON;
迁移步骤之前,在命令中添加语句。
例如,使用C#:
using(SqlConnection myConn= new SqlConnection(conn))
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SET IDENTITY_INSERT [dbo].[YourTable] ON;";
//Migration steps here...
cmd.CommandText += "SET IDENTITY_INSERT [dbo].[YourTable] OFF;";
}
编辑:
根据@benjamin moskovits的评论建议,使用未记录的sp_msforeachtable
,虽然这可以为数据库中的每个表设置sp_msforeachtable
IDENTITY_INSERT,但这种方法有点像是大锤,根据您的具体情况可能会产生意想不到的后果迁移模式。
exec sp_msforeachtable 'SET IDENTITY_INSERT ? ON;'
如果要对数据库中的每个表执行某项操作,则可以使用“不受支持”但在几乎每个版本的SQL Server中都广泛使用并且可用的sp_msforeachtable命令来执行某项操作。
exec sp_msforeachtable 'select count(*) ''?'' from ?'
将为您提供数据库中每个表的列表及其包含的行数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.