テーブル値パラメーターを使用してインポートされた名前をフィルター処理するストアド プロシージャを作成しようとしています。インポートされた名前のリストを取得し、データベースに存在しないか、特定のタイプのメッセージを既に受信した名前のリストを返す必要があります。
私が苦労している部分は、結合を作成する方法です。IS NULL チェックを使用した左外部結合は、1 つのテーブル チェックでは機能しますが、2 つのテーブルについてはわかりません。どんな助けでも大歓迎です。ありがとう!
私はMS SQL 2012を使用しています。列を持つテーブル:
Recipients:
id | name
SendResults:
id | recipientid | type
テス
CREATE PROCEDURE [dbo].[usp_RecipientsSendCheck]
(
@Type int
,@RecipientsImports dbo.RecipientsImport READONLY
)
AS
BEGIN
SELECT i.Name FROM @RecipientsImports i
LEFT JOIN Recipients r
ON i.Name = r.Name
LEFT JOIN SendResults s
ON s.RecipientId = r.id
WHERE r.Name IS NULL OR Type <> @Type
END
ユーザー定義のテーブル タイプ
CREATE TYPE [dbo].[RecipientsImport] AS TABLE(
[Name] [nchar](10) NOT NULL
)