[英]Generating insert statement that includes identity column
我正在尝试使用CommandBuilder生成包含Identity列的插入语句。 为了生成测试数据,我希望能够在表上启用“身份插入”后将一个值插入到身份列中
var sql = "Select * from Table";
var dataAdapter = new SqlDataAdapter(sql, conn);
dataAdapter.Fill(currentTable);
var cb = new SqlCommandBuilder(dataAdapter);
命令构建器的确会生成插入语句,但是我无法使其包含身份列。 我正在为许多表创建通用解决方案,因此我想避免手动生成语句。 有没有办法欺骗它包括所有列?
我也对不包含CommandBuilder的其他解决方案持开放态度
commandbuilder使用从数据库获得的架构,并且命令构建过程不可配置。 唯一的选择可能是将“ instert into(”替换为“ insert into(id,”,“ values(”替换为“ values(@id,“。)。不要忘记在参数集合中添加@id参数。
使用纯SQL执行此操作:
set IDENTITY_INSERT dbo.MyTable ON;
insert into dbo.MyTable (id, ...) values (1, ...)
...
set IDENTITY_INSERT dbo.MyTable OFF;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.