我正在尝试使用CommandBuilder生成一个包含标识列的insert语句。出于测试数据生成的目的,我希望在表上启用标识插入后,能够将值插入标识列
var sql = "Select * from Table";
var dataAdapter = new SqlDataAdapter(sql, conn);
dataAdapter.Fill(currentTable);
var cb = new SqlCommandBuilder(dataAdapter);命令构建器确实生成了insert语句,但我无法让它包含identity列。我正在为许多表创建一个通用的解决方案,所以我希望避免手动生成语句。有没有办法让它包含所有列?
我也对其他不包括CommandBuilder的解决方案持开放态度
发布于 2013-07-30 23:57:58
命令生成器使用从数据库中获取的模式,命令生成过程不可配置。唯一的选项可以类似于将"instert into(“替换为"insert into(id,”),并将"values (“替换为"values (@id,”)。不要忘了将@id参数也添加到参数集合中。
发布于 2013-07-31 01:06:48
使用纯SQL来完成以下操作:
set IDENTITY_INSERT dbo.MyTable ON;
insert into dbo.MyTable (id, ...) values (1, ...)
...
set IDENTITY_INSERT dbo.MyTable OFF;https://stackoverflow.com/questions/17951683
复制相似问题