SQL クエリから変数を設定しようとしています:
declare @ModelID uniqueidentifer
Select @ModelID = select modelid from models
where areaid = 'South Coast'
明らかに、これは正しく実行されていないので機能しません。誰か解決策を提案してもらえますか?
ありがとう!
ベストアンサー1
使用SELECT
SELECT @ModelID = m.modelid
FROM MODELS m
WHERE m.areaid = 'South Coast'
使用SET
SET @ModelID = (SELECT m.modelid
FROM MODELS m
WHERE m.areaid = 'South Coast');
次に、 を使用して変数SELECT
の値を表示したり@ModelID
、コード内で変数を使用したりできます。
SELECT @ModelID
TSQLでのSELECTとSETの違いについては、この質問を参照してください。。
警告
SELECT
このステートメントが複数の値を返す場合(そもそも不適切):
- を使用すると
SELECT
、変数には返された最後の値が割り当てられます(wompが言ったように)、エラーや警告はありません(これによりロジックのバグが発生する可能性があります)。 SET
クエリの最後にセミコロンを入れない場合にのみ、クエリはエラーを返します。