2016-10-13 9 views
0

SQL Server 2000の使用。 INSERTEDレコードのフィールドの値が、テーブルのフィールドのいくつかの異なる値のいずれかと一致する場合、アクションを特定しようとしています。 tableBのフィールドyは 'one'、 'two'または 'three'と言うことができます。 INSERTEDレコードは単一のレコードでなければならないため、フィールドxは単一の値でなければなりません。したがって、以下のコードスニペットを参照して、正しい構文は何ですか?特に "()"はどこのIFステートメントに入りますか?私は、SELECTステートメントを使用してIFステートメントを使用しようとしています。次のT-SQLステートメントの正しい構文は何ですか?

if select x from INSERTED in (select y from tableB) 
and <another condition> 
begin 

<some code> 

end 
+0

の「どこに存在する」が、'始める前に試してみてください'は括弧で囲まれている。 –

+0

あなたが達成しようとしていることを表現できれば、私たちが手助けするほうが簡単でしょう。あなたの意図する意味で人々を推測させることは、みんなの時間の無駄です。 – HABO

答えて

0

正しい構文は、変数内の個々のフラグを格納し、IF条件でそれを使用することができます

IF EXISTS (SELECT * FROM TABLE1 WHERE X IN (1,2)) 
Begin 
-- code 
End 
0

です。

Declare @chkExist int 
Select @chkExist = Count(*) from tableA x in (select y from tableB) 

if ((@chkExist > 0) and (<another condition>)) 
begin 

<some code> 

end 
0

あなたは `IF`後、すべてをラップする必要が単純な単一の比較よりも大きな何かを持っている場合は代わりに「IN」

if exists (select null from tableA taAlias where (select null from tableB tbAlias where tbAlias.y = taAlias.x)) 
and 1=1 
begin 

    Select 1 as 'YouNeedAtLeastOneLineOfCodeInThisBeginEnd' 
end 
関連する問題