申し訳ありませんが、これは構文の質問ですが、T-SQLでは、どのDBをINSERTし、どのDBから参加したいのかをLEFT JOINで指定するにはどうすればよいですか?
if not exists (select * from [DB_A].[dbo.a_test])
create table [DB_A].[dbo.a_test] (
a int(10) ,
b int(10) ,
c varchar(200) ,
d varchar(200) ,
e varchar(200) ,
PRIMARY KEY (a)
)
INSERT INTO [DB_A].[dbo.a_test] (a,b,c, d)
VALUES dbo.products.product_info, dbo.products.product_date, dbo.products.smth, *dbo.program.program_name*, dbo.program.program_smth
FROM [DB_B].dbo.products
LEFT JOIN [DB_B].dbo.program
ON dbo.program.program_name = dbo.products.product_info
そのようなnoobの質問で申し訳ありませんが、適切な例が見つかりませんでした。
insert into . . . select
:
INSERT INTO [DB_A].[dbo.a_test](a,b,c,d,e) --ADDED A COLUMN
select p.product_info, p.product_date, p.smth, pr.program_name, pr.program_smth
FROM [DB_B].dbo.products p LEFT JOIN
[DB_B].dbo.program pr
ON p.program_name = pr.product_info;
また、テーブルエイリアスを使用するようにクエリを修正したため、読みやすくなりました。
INSERT INTO [DB_A].[dbo.a_test] (a,b,c, d)
SELECT dbo.products.product_info, dbo.products.product_date, dbo.products.smth, dbo.program.program_smth
FROM [DB_B].dbo.products
LEFT JOIN [DB_B].dbo.program
ON dbo.program.program_name = dbo.products.product_info