2009-07-02 3 views
0

C#でSQL Server 2005でプログラムによってDBLinkを作成することはできますか?C#でSQL Server 2005でプログラムでDBLinkを作成することはできますか?

私はデータベースAとBを持っていると仮定します。私はBに接続するためにDBリンクを作成したいと思います。私はBデータベース情報をユーザから取得し、データベースAにDBLinkを作成します。これはC#.Netバージョン2.0 ?あなたはsp_addlinkedserverを持つリンクサーバーを追加することができます

答えて

2

:C#2から

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

を、あなたは、SqlCommandオブジェクトでこのクエリを保存し、データベース上でそれを実行するためには、ExecuteNonQuery()を呼び出すことができます。

1

何をしたいことは、これを行うストアドプロシージャを作成して、次のストアドプロシージャ作るC#

から呼び出すです:今、リモートDBがローカルユーザーにリンクされてい

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 

を管理者。

あなただけのSqlCommandオブジェクトを作成し、ストアドプロシージャにタイプを設定し、非クエリを実行し、C#で今すぐ

:)

SERVERDOMAIN \管理者はまた、単に「DBO」のようなSQLユーザーである可能性があります。

これが役に立った。

関連する問題