私はERTdata
という名前のテーブルを持つメインデータベースを持っていますが、データベースの名前が格納されており、このデータベースのカラムId, DatabaseName, Initiatedby, CreatedDate
の後です。SQL - テーブルに挿入する場合はsys.databasesにあります
DatabasesOnServer
という別のテーブルの列には、Id, DatabaseName, Initiatedby, CreatedDate
があります。サーバがすでにその上に特定のデータベースを持っており、同じことがERTdata中に存在する場合、それはテーブルDatabaseOnServerに挿入する場合
INSERT INTO DatabaseOnServer (Id, DatabaseName, Initiatedby,CreatedDate)
SELECT Id, DatabaseName, Initiatedby, CreatedDate
FROM ERTdata
WHERE EXISTS (SELECT 1
FROM sys.databases
WHERE name = ERTdata.DatabaseName)
上記のクエリをチェック:
は、これが私のクエリです。
重複が発生するという問題があります。存在しない場合にのみ挿入するにはどうすればいいですか?データベースがサーバー上に存在しない場合は、DatabaseOnServer
からエントリを削除してください。
ありがとうございます。
こんにちはlad2025、クエリが機能します。ただし、データベースが削除された場合、DatabaseOnServerからレコードを削除するにはどうすればよいですか。 例:ABCと呼ばれるデータベースがあります。名前と詳細がDatabaseOnServerに挿入されます。サーバーからABCを削除すると、そのエントリはまだDatabaseOnServerに存在します。レコードを削除する必要があります – Tango
@タンゴこれはまったく新しい質問でなければなりません。より多くのロジックが必要な場合は、 'MERGE'を使用してください。 – lad2025
@タンゴそのように質問を変更しないでください。あなたの元の質問が解決したら、合格とマークして新しい質問をしてください。 – lad2025