2012-04-05 22 views
1

あるサーバ上のテーブルを読み込み、私のハードディスク上の別の既存のテーブルに書き込もうとしています(ローカル... SQL Server Expressを使用して作成)。あるサーバからテーブルを読み込み、別のテーブルに書き込む(共有する)

ここに私のコードです:

insert into [DPS-ABC1DE2\SQLEXPRESS].my_LOCAL_DATABASE.dbo.SHIPMENTS 
select 
    CUST_NUMBER, 
    SHIPMENT_ID, 
    SHIP_DATE, 
    MODE_CODE, 
    MILES, 
    WEIGHT, 
    AMOUNT_PAID 
from SHARED_DATABASE.dbo.SHIPMENTS 
where datepart(year,SHIP_DATE)= 2012 and datepart(month,SHIP_DATE) = 1 

私はこれを実行すると、私は、次のエラーメッセージが表示されます。

Msg 7202, Level 11, State 2, Line 7
Could not find server 'DPS-ABC1DE2\SQLEXPRESS' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.

だから私は

EXEC sp_addlinkedserver [DPS-ABC1DE2\SQLEXPRESS] 

を使用してみましたが、私はこれを取得エラー:

"Msg 15247, Level 16, State 1, Procedure sp_MSaddserver_internal, Line 29
User does not have permission to perform this action."

私は新人のSQLプログラマですので、私はこれを広範に研究しなければなりませんでしたが、成功しませんでした。どんな助けもありがとう!

+1

「ユーザー「は、このアクションを実行する権限を持っていないのに役立ちます希望 - 。あなたはそのような単純な十分な権限を持っていない –

+0

FYI、クロスサーバ問合せができ[私見]一貫して仕事をするのが非常に難しいです。それは間違いなく高度な科目であり、あなたがルーキーと考える限り少なくとも慎重でなければなりません。 –

答えて

1

sp_addlinkedserver実行権限は、sysadminおよびsetupadmin固定サーバーロールのメンバーに既定で実行されます。 sql server 2005でそれを整理する方法についてはlinkをチェックしてください。

この問題を解決したら、次のコマンドを使用して他のサーバーにリンクしてログインすることができます。

--add the linked server and then login 
EXEC sp_addlinkedserver 'DPS-ABC1DE2\SQLEXPRESS',N'SQL Server'; 

EXEC sp_addlinkedsrvlogin @rmtsrvname='DPS-ABC1DE2\SQLEXPRESS', 
     @useself='false', 
     @rmtuser='login_username', 
     @rmtpassword='login_password' 

--do your job here      
Insert into [DPS-ABC1DE2\SQLEXPRESS].my_LOCAL_DATABASE.dbo.SHIPMENTS 
Select... 

--drop the linked server login and then drop the server 
EXEC sp_droplinkedsrvlogin 'DPS-ABC1DE2\SQLEXPRESS', NULL 
EXEC sp_dropserver 'DPS-ABC1DE2\SQLEXPRESS', NULL; 

これは...

関連する問題