Welcome to Sign in | Help

Re: SQL OpenQuery si parametru vaqrchar

  •  10-19-2007, 12:32 AM

    Re: SQL OpenQuery si parametru vaqrchar

    Ai putea incerca sa utilizezi o procedura stocata "remote".

    Exemplu:

    Vrei sa apelezi de pe SERVER1 o procedura stocata definita pe SERVER2.

    Pe SERVER2 creezi procedura stocata:

    CREATE PROCEDURE spTest
    @cod INT
    AS

    SELECT Q.C1, Q.C2
    FROM
    (
    SELECT 'A' AS C1, 101 AS C2
    UNION
    SELECT 'B', 102
    UNION
    SELECT 'C', 103
    UNION
    SELECT 'D', 104
    UNION
    SELECT 'E', 105
    ) AS Q
    WHERE Q.C2 >= @cod

     
    Pe SERVER1:

    EXEC sp_addlinkedserver  
        @server = 'LINK_SQLSERVER_2', --denumire linked server
        @srvproduct = '',
        @provider = 'SQLNCLI', --furnizorul de date
        @datasrc = 'server\instanta', --serverul (sau server\instanta) la care se va realiza conexiunea
        @catalog = 'bd_server_2' --baza de date


    --activezi optiunea RPC OUT pentru serverul "linked"

    EXEC master.dbo.sp_serveroption
        @server='LINK_SQLSERVER_2',
        @optname='rpc out', 
        @optvalue='true'


    --definesti contextul de conectare la SERVER2 de pe SERVER1
    --daca te conectezi pe SERVER2 cu acelasi utilizator ca si pe SERVER1 (ex. folosind autentificare Windows; se poate si  cu autentificare mixta WIN+SQL)
    EXEC sp_addlinkedsrvlogin

        @rmtsrvname = 'LINK_SQLSERVER_2',
        @useself = 'TRUE',
        @locallogin = 'domeniu\utilizator'

    --daca te conectezi pe SERVER2 cu alt utilizator decat cel de pe SERVER1
    EXEC sp_addlinkedsrvlogin
        @rmtsrvname = 'LINK_SQLSERVER_2',
        @useself = 'FALSE',
        @locallogin = 'domeniu\utilizator',
        @rmtuser = 'utilizator_server_2',
        @rmtpassword  = 'parola_utilizator_server_2'
     

    Executi procedura stocata:

    EXEC LINK_SQLSERVER_2.bd_server_2..spTest 104

View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems