繁体   English   中英

生成包含标识列的插入语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM