2016-05-27 5 views
2

私はSQL Serverの初心者です。私の限界に達しました。SQLテーブルを別のテーブルから更新する

現在、私は、列を使用して別のテーブルからテーブルを更新するスクリプトを使用しています。両方のデータベースが2つの異なるサードパーティ製ソフトウェアに割り当てられているので、Windowsサーバーのタスクマネージャーに使用する.batスクリプトを作成し、10分ごとに更新できます。

これはテストされ、機能しますが、タスクを使用せずに2つのデータベース間の関係を作成する方法が必要だと感じています。

UPDATE therefore.dbo.thecat51 
SET num_factura = 
(SELECT therefore.dbo.documentos.num_factura 
FROM therefore.dbo.Documentos 
WHERE therefore.dbo.thecat51.num_albaran=therefore.dbo.documentos.num_albaran) 
WHERE therefore.dbo.thecat51.num_albaran = 
(SELECT therefore.dbo.documentos.num_albaran 
FROM therefore.dbo.Documentos 
WHERE therefore.dbo.thecat51.num_Albaran = therefore.dbo.documentos.num_albaran) 

また、SQL Server Expressを使用しているため、スケジュールされたジョブを作成するオプションはありません。

+0

リンクサーバーは、あなたが見ているものはおそらくです= cr> J0pIV6TBE-2v8weI1oLoAg –

答えて

0

はあなたが必要な更新を実行するためにINNER JOINUPDATEを行うことができます。

UPDATE A SET 
    num_factura = B.num_factura 
FROM therefore.dbo.thecat51 A 
    INNER JOIN therefore.dbo.Documentos B 
     ON A.num_albaran = B.num_albaran 
0

はあなたの2つのテーブル間INNER JOINを使用してください。私はこの投稿時点で、あなたはので、私はSQL ServerとMySQLのための答えを与える使用しているRDBMSた私たちに語っていませんでした:

SQL Serverの:

UPDATE t1 
SET t1.num_factura = t2.num_factura 
FROM therefore.dbo.thecat51 AS t1 
INNER JOIN therefore.dbo.Documentos AS t2 
    ON t1.num_albaran = t2.num_albaran 

のMySQL:

> https://www.google.fr/search?q=linked+server+sql+server&ie=utf-8&oe=utf-8&client=firefox-b-ab&gfe_rd -
UPDATE therefore.dbo.thecat51 AS t1 
INNER JOIN therefore.dbo.Documentos AS t2 
    ON t1.num_albaran = t2.num_albaran 
SET t1.num_factura = t2.num_factura 
+0

私は試しても動作しますが、同じ方法で動作します。つまり、手動でテーブルを更新するか、10分ごとに実行するスクリプトを作成する必要があります。私が求めていたのは、値が追加されるたびに自動的に更新されるように2つのテーブルをリンクする方法です。 迅速な対応に感謝します。 –

+1

@ alex-eあなたはトリガーを必要とします... –

+0

遅れて申し訳ありませんが、私は他の仕事をしています。トリガーについて調べたところ、それは私が探しているもののようです。 –

関連する問題