日期:2014-05-17  浏览次数:20391 次

把本地数据库数据导入服务器数据库中
远程的表和本地的表结构一样 表名不一样
insert openrowset( 'SQLOLEDB ', '服务器地址'; 'sa '; 'PASSWORD', 数据库名.dbo.VS_TVKO) 
select * from TVKO  
这个是所有的字段都插入 主键的ID是自动增长的 所以会报错 
错误消息
链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。"。
消息 7344,级别 16,状态 1,第 1 行
由于列 "id",链接服务器 "(null)" 的 OLE DB 访问接口 "SQLNCLI10" 无法 INSERT INTO 表 "[SQLNCLI10]"。用户没有写入该列的权限。

改成
insert openrowset( 'SQLOLEDB ', '服务器地址'; 'sa '; 'PASSWORD', 数据库名.dbo.VS_TVKO) 
select a , b from TVKO  也会提示 
列名或所提供值的数目与表定义不匹配。


求解决在线等
数据库 本地数据库导入到服务器端 SQL2008

------解决方案--------------------
insert openrowset( 'SQLOLEDB ', '服务器地址'; 'sa '; 'PASSWORD', 数据库名.dbo.VS_TVKO) 
 select a , b from TVKO  也会提示 
 列名或所提供值的数目与表定义不匹配。

列定义不匹配啊,应该是VS_TVKO中不只有A,B列吧
------解决方案--------------------
insert openrowset( 'SQLOLEDB ', '服务器地址'; 'sa '; 'PASSWORD', 数据库名.dbo.VS_TVKO)(a,b)
select a , b from TVKO 
把自增列避开喽
------解决方案--------------------
引用:
引用:insert openrowset( 'SQLOLEDB ', '服务器地址'; 'sa '; 'PASSWORD', 数据库名.dbo.VS_TVKO)(a,b)
select a , b from TVKO 
把自增列避开喽

既然问了也不怕你笑话 就是不知道怎么避开才能问的 能把代码写出来吗

就我写的,insert后面把要插入的列名写上,select也是,列名一一对应,不写自增列就可以了啊