仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'dbo.cangchuchayi'中的标识列指定显式值。

我用SQL2008将EXCEL里边的数据导致指定的数据库表里,INSERTINTOdbo.cangchuchayiSELECT*FROMOPENROWSET('MICRO... 我用SQL2008将EXCEL里边的数据导致指定的数据库表里,INSERT INTO dbo.cangchuchayi SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=E:\chayi.xls',cccy$)
但是出现错误信息:消息 8101,级别 16,状态 1,第 1 行
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'dbo.cangchuchayi'中的标识列指定显式值。
把set去掉后出现这个提示,以前一直好用,重新做完系统,装上SQL2008后就出现这个提示。
EXCEL的列名与cangchuchayi是对应的
展开
 我来答
szm341
2012-10-15 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5149万
展开全部
如提示所示啊,你导入的表中有标识列,标识列只有IDENTITY_INSERT 为 ON 时
才能显示的添加,你在select * 中把*改成列名,去掉标识列就可以了
如果是需要添加的,那么用set IDENTITY_INSERT cangchuchayi on
来打开开关,但是需要显示指定列名,即insert into 表(列名1...)

插入后用off关闭
更多追问追答
追问
查询成功了,但是数据没添加进去
追答
如我上面所说的啊,你想怎么添加呢?是要标识列的还是不要的?
然后照我说的操作报什么错误?
喜欢种蘑菇
2019-07-03 · TA获得超过4769个赞
知道答主
回答量:71
采纳率:100%
帮助的人:4.4万
展开全部

这个问题是因为在你要插入的新表里,有一列是标识列,例如自增这样的。所以会导致在插入数据的时候报错,因为不能往标识列里插入数据。

解决方法:例如一个SQL语句,INSERT INTO a表名 SELECT * FROM  b表名。

b表有列1,2,3,列1在a表里是标识列(如自增),正确语句应该是INSERT INTO a表名 SELECT 列2,列3  FROM  b表名。

扩展资料:

常见SQL语句:

更新:update table1 set field1=value1 where 范围

查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)

排序:select * from table1 order by field1,field2 [desc]

求和:select sum(field1) as sumvalue from table1

平均:select avg(field1) as avgvalue from table1

最大:select max(field1) as maxvalue from table1

最小:select min(field1) as minvalue from table1[separator]

参考资料:百度百科——sql语句

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李响知道
2013-10-24
知道答主
回答量:46
采纳率:0%
帮助的人:11.6万
展开全部
select*from 是查找所有,而insert into 表名 values()这才是插入啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式