2009-07-02 14 views

Antwort

2

Sie können einen Verbindungsserver mit sp_addlinkedserver hinzufügen:

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

Von C#, können Sie diese Abfrage in einem SqlCommand speichern kann, und rufen ExecuteNonQuery() auf der Datenbank auszuführen.

1

Was Sie tun wollen ist eine gespeicherte Prozedur zu machen, das dies tut und dann rufen von C#

Sie die folgende gespeicherte Prozedur:

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 

Nun ist die Remote-db hat an den lokalen Benutzer in Verbindung gebracht worden Administrator.

Jetzt in C# machen Sie nur ein SqlCommand und und wählen Sie den Typ gespeicherte Prozedur, und führen Sie eine nicht Abfrage :)

Serverdomain \ Administrator könnte auch nur ein SQL-Benutzer wie ‚dbo‘ sein.

Hoffe das half.