0

C#のSQL Server 2005でプログラムでDBLinkを作成することは可能ですか?

データベースAとBがあるとします。AにDBlinkを作成してBに接続します。ユーザーからBデータベース情報を取得し、データベースAにDBLinkを作成します。これはC#.Netバージョン2.0で可能ですか?

4

2 に答える 2

2

sp_addlinkedserverを使用してリンクサーバーを追加できます。

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

C#から、このクエリをSqlCommandに格納し、ExecuteNonQuery()を呼び出してデータベースで実行できます。

于 2009-07-02T11:23:22.610 に答える
1

あなたがしたいのは、これを行うストアドプロシージャを作成し、C#から呼び出すことです。

次のストアドプロシージャを作成します。

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

これで、リモートデータベースがローカルユーザー管理者にリンクされました。

C#では、SqlCommandを作成し、タイプをストアドプロシージャに設定して、クエリ以外を実行します:)

ServerDomain \ Administratorは、「dbo」のようなSQLユーザーにすることもできます。

これがお役に立てば幸いです。

于 2009-07-02T11:24:18.677 に答える