2009-07-02 3 views

Répondre

2

Vous pouvez ajouter un serveur lié à sp_addlinkedserver:

EXEC sp_addlinkedserver 
    @server = 'OracleHost', 
    @srvproduct = 'Oracle', 
    @provider = 'MSDAORA', 
    @datasrc = 'MyServer' 

De C#, vous pouvez stocker cette requête dans un SqlCommand, et appelez ExecuteNonQuery() pour l'exécuter sur la base de données.

1

Qu'est-ce que vous voulez faire est une procédure stockée qui fait cela et appeler à partir de C#

Faire la procédure stockée suivante:

Create PROCEDURE [dbo].[LinkMyServer] 

AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

EXEC sp_addlinkedserver @server = N'LinkName', 
@srvproduct = N' ', 
@provider = N'SQLOLEDB', 
@datasrc = N'some.domain.or.ip.com', 
@catalog = N'database_name' 

EXEC sp_addlinkedsrvlogin N'LinkName', false, N'ServerDomain\Administrator', N'user_on_remotedb', N'password_on_remote_db' 

END 

Maintenant, la db à distance a été liée à l'utilisateur local Administrateur.

Maintenant en C# vous faire juste un SqlCommand et définissez le type et la procédure stockée et exécuter une requête non :)

SERVERDOMAIN \ Administrateur peut également être juste un utilisateur sql comme « dbo ».

J'espère que cela a aidé.

Questions connexes