我现在要选择本机表test中的几个字段内容导入到服务器上test2中,test2中的字段是id(自动编号),username2,password2
我使用以下语句为什么不行?
insert openrowset('SQLOLEDB', '服务器'; '用户名'; '密码',库名.dbo.test2) select top 10 username,password from test
我觉得错误可能在:
后面的select中的字段只有username和password两个,前面的test2有三个,并且字段不能一一对应如何解决?

解决方案 »

  1.   

    INSERT OPENROWSET( 'SQLOLEDB', '192.168.223.239'; 'sa'; '123',test.dbo.aa) 
    SELECT * FROM aa我用这个测试没问题,你的错误提示是什么?
      

  2.   

    INSERT OPENDATASOURCE('sqloledb', 'server=192.168.223.239;uid=sa;pwd=123').test.dbo.ab(col1,col2...)
    SELECT * FROM aa带标识列的用这个方法导入测试OK
      

  3.   

    INSERT INTO 
    OPENDATASOURCE('sqloledb', 'server=192.168.223.239;uid=sa;pwd=123') --相当于服务器名
    .test         --数据库名
    .dbo          --架构名
    .ab           --表名
    (col1,col2...)--字段列表SELECT 
        col1,col2..... --与插入表相对应的字段列表
    FROM 目标表
      

  4.   

    如下加上列名 即可insert openrowset('SQLOLEDB', '服务器'; '用户名'; '密码',库名.dbo.test2)
    (username2,password2) 
    select top 10 username,password from test
      

  5.   

    谢谢,原来字段名要加在openrowset的括号外面