SQL如何链接服务器? 即链接另外一台SQL服务器。我链接不成功,麻烦帮我,谢谢。。
代码如下:exec sp_addlinkedserver  'ITSV ', ' ', 'SQLOLEDB ', 'hc1' 
exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, 'sa', '123456' 执行结果:(所影响的行数为 1 行)
(所影响的行数为 1 行)
(所影响的行数为 0 行)
(所影响的行数为 1 行)
(所影响的行数为 0 行)
(所影响的行数为 1 行)

解决方案 »

  1.   

    用sp_testlinkedserver 来测试一下是否连接成功.
      

  2.   

    --多餘空格去掉
    exec sp_addlinkedserver  'ITSV', ' ', 'SQLOLEDB', 'hc1' 
    exec sp_addlinkedsrvlogin  'ITSV', 'false',null, 'sa', '123456' 
      

  3.   

      EXEC SP_ADDLINKEDSERVER   '链接服务器命名(自己随便命名个就行)','','SQLOLEDB','目标服务器IP'
      EXEC SP_ADDLINKEDSRVLOGIN '链接服务器命名','FALSE',NULL,'用户名','密码'
      

  4.   

    引:
    1、固定连接
    --创建链接服务器
    exec sp_addlinkedserver      '连接名称(自己定义)','','SQLOLEDB','远程服务器名或ip地址'
    exec sp_addlinkedsrvlogin '连接名称(自己定义)','false',null,'用户名','密码'
    go
    --查询示例
    select * from      连接名称(自己定义).数据库名.dbo.表名
    --以后不再使用时删除链接服务器
    exec sp_dropserver '连接名称(自己定义)','droplogins'2、临时连接
    --如果只是临时访问,可以直接用openrowset
    语法
    OPENROWSET ( 'provider_name'
            , { 'datasource' ; 'user_id' ; 'password'
                | 'provider_string' }
        , { [ catalog.] [ schema.] object
                | 'query' } 
        ) 参数
    'provider_name'字符串,它代表在注册表中指定的 OLE DB 提供程序的友好名。provider_name 没有默认值。'datasource'字符串常量,它对应着某个特定的 OLE DB 数据源。datasource 是将被传递到提供程序 IDBProperties 接口以初始化提供程序的 DBPROP_INIT_DATASOURCE 属性。通常,这个字符串包含数据库文件的名称、数据库服务器的名称,或者提供程序能理解的用于查找数据库的名称。 'user_id'字符串常量,它是传递到指定 OLE DB 提供程序的用户名。user_id 为连接指定安全上下文,并将它作为 DBPROP_AUTH_USERID 属性传递进来以初始化提供程序。'password'字符串常量,它是将被传递到 OLE DB 提供程序的用户密码。当初始化提供程序时,将 password 作为 DBPROP_AUTH_PASSWORD 属性传递进来。'provider_string'提供程序特定的连接字符串,将它作为 DBPROP_INIT_PROVIDERSTRING 属性传递进来以初始化 OLE DB 提供程序。通常 provider_string 封装初始化提供程序所需的所有连接信息。catalog目录或数据库的名称,其中驻留着指定的对象。schema架构的名称或指定对象的对象所有者名称。object对象名称,它唯一地标识出将要操作的对象。'query'是字符串常量,发送到提供程序并由提供程序执行。Microsoft® SQL Server™ 不处理该查询,但处理由提供程序返回的查询结果(直接传递查询)。对于有些提供程序,它们并没有通过表名而是通过命令语言表现自己的表格格式数据,那么将直接传递查询用于这些提供程序是非常有用的。只要查询提供程序支持 OLE DB Command 对象及其强制接口,那么在远程服务器上就支持直接传递查询。
    注释
    如果 OLE DB 提供程序在指定的数据源中支持多个目录和架构,那么就需要目录及架构名称。如果 OLE DB 提供程序并不支持目录和架构,那么可以省略 catalog 及 schema 的值。 如果提供程序只支持架构名,那么必须指定一个两部分名称,形式为 schema.object。如果提供程序只支持目录名,那么必须指定一个三部分名称,形式为 catalog.schema.object。OPENROWSET 不接受参数变量。权限
    OPENROWSET 权限由传递到 OLE DB 提供程序的用户名的权限确定。 示例
    A. 将 OPENROWSET 与 SELECT 语句及用于 SQL Server 的 Microsoft OLE DB 提供程序一起使用
    下面的示例使用用于 SQL Server 的 Microsoft OLE DB 提供程序访问 pubs 数据库中的 authors 表,该数据库在一个名为 seattle1 的远程服务器上。从 datasource、user_id 及 password 中初始化提供程序,并且使用 SELECT 语句定义返回的行集。USE pubs
    GO
    SELECT a.*
    FROM OPENROWSET('SQLOLEDB','seattle1';'sa';'MyPass',
           'SELECT * FROM pubs.dbo.authors ORDER BY au_lname, au_fname') AS a
    GOB. 将 OPENROWSET 与对象及用于 ODBC 的 OLE DB 提供程序一起使用
    下面的示例使用用于 ODBC 的 OLE DB 提供程序以及 SQL Server ODBC 驱动程序访问 pubs 数据库中的 authors 表,该数据库在一个名为 seattle1 的远程服务器中。提供程序用在 ODBC 提供程序所用的 ODBC 语法中指定的 provider_string 进行初始化,定义返回的行集时使用 catalog.schema.object 语法。USE pubs
    GO
    SELECT a.*
    FROM OPENROWSET('MSDASQL',
           'DRIVER={SQL Server};SERVER=seattle1;UID=sa;PWD=MyPass',
           pubs.dbo.authors) AS a
    ORDER BY a.au_lname, a.au_fname
    GOC. 使用用于 Jet 的 Microsoft OLE DB 提供程序
    下面的示例通过用于 Jet 的 Microsoft OLE DB 提供程序访问 Microsoft Access Northwind 数据库中的 orders 表。
    说明      下面的示例假定已经安装了 Access。
    USE pubs
    GO
    SELECT a.*
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
           'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders) 
           AS a
    GOD. 使用 OPENROWSET 和 INNER JOIN 中的另一个表
    下面的示例从本地 SQL Server Northwind 数据库的 customers 表中,以及存储在相同计算机上 Access Northwind 数据库的 orders 表中选择所有数据
    说明      下面的示例假定已经安装了 Access。
    USE pubs
    GO
    SELECT c.*, o.*
    FROM Northwind.dbo.Customers AS c INNER JOIN 
           OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
           'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders) 
           AS o
           ON c.CustomerID = o.CustomerID 
    GO
      

  5.   

    楼主可以参考一下这个。
    http://blog.csdn.net/sdhdy/archive/2009/05/14/4184104.aspx
      

  6.   

    LZ应该把错误结果贴出来
    不过看到用sa就看出来问题了每二个语句中有个为NULL的参数, 改为'sa'就行了, 因为LZ的本地登录用户也是sa吧, 要不就连不上啊
    exec sp_addlinkedserver  'ITSV ', ' ', 'SQLOLEDB ', 'hc1' 
    exec sp_addlinkedsrvlogin  'ITSV ', 'false ','sa', 'sa', '123456'