当前位置:编程学习 > C#/ASP.NET >>

sqlcommand 插入语句能够执行,放到sqlserver查询分析器里却不能执行

执行一条插入语句:insert into table1 values (value2,value3,value4)
其中table1中的第一个字段为主键,并且为自增列,所以在value值里面省略了value1.


这句话在sqlcommand.executenonquery()中能顺利执行。
放在查询分析器重就不能执行了。
提示identity_insert 设置为off时,不能向表table1的标识列中插入显示值。


我用的是 sqlserver 2000 . 
         .net2.0

难道是版本问题?


求大虾帮忙! --------------------编程问答-------------------- table1(列名2,列名3,列名4) --------------------编程问答-------------------- value2,value3,value4变量? --------------------编程问答--------------------
引用 2 楼 doubleu2005 的回复:
value2,value3,value4变量?


是变量的值 --------------------编程问答--------------------
引用 1 楼 shiyuyao1987 的回复:
table1(列名2,列名3,列名4)


我为了省事,没有写字段名称。直接insert table1 values(......)

我的疑问是为什么sqlcommand可以执行,放到查询分析器里就不能执行呢? --------------------编程问答-------------------- 估计是由于没有写列,直接插入时,查询分析器里认为value2对应第一个identity列,
所以就会有提示“提示identity_insert 设置为off时,不能向表table1的标识列中插入显示值” --------------------编程问答-------------------- 存在查询分析器中,不写的话就默认是所有的列,额你才写了3个值啊。 --------------------编程问答-------------------- 自增列是不用添加的  insert into table1 values(val1,val2,val3),自增默认就是不用添加的啊
应该不写列名 能添加的 --------------------编程问答--------------------
引用 6 楼 xiongxyt2 的回复:
存在查询分析器中,不写的话就默认是所有的列,额你才写了3个值啊。

对 --------------------编程问答-------------------- set identity_insert OrderList ON--打开

insert into Tb(ordername)
values('set')

set identity_insert OrderList OFF--关闭 --------------------编程问答--------------------
引用 7 楼 lishuai1030 的回复:
自增列是不用添加的  insert into table1 values(val1,val2,val3),自增默认就是不用添加的啊
应该不写列名 能添加的


是啊,默认自增列不需要添加的。可是同样的sql语句怎么放到查询分析器里就会提示错误呢? --------------------编程问答-------------------- 看看格式对不对,我也遇到过程序里可以而分析器里不行,我记得我的是由于引号的缘故 --------------------编程问答-------------------- set identity_insert 表名 ON;

insert into table1 values (value2,value3,value4);

set identity_insert 表名 OFF;
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,