こんにちは、テーブルを更新する手順があります。
UPDATE myTbl
SET pswd = @newPswd
where id = @id and pswd = @pswd
今すぐ確認したい
if pswd <> @pswd
print 'error'
どうやって?エラー無効な列がある場所の後にそれを書くとき
こんにちは、テーブルを更新する手順があります。
UPDATE myTbl
SET pswd = @newPswd
where id = @id and pswd = @pswd
今すぐ確認したい
if pswd <> @pswd
print 'error'
どうやって?エラー無効な列がある場所の後にそれを書くとき
if ステートメントで列の名前を直接呼び出すことはできません。pswd の値をローカル変数 (@pswd 変数とは異なる) に設定し、2 つを比較する必要があります。
Declare @tempPswd varchar(20)
Select @tempPswd = pswd
From myTbl
Where id = @id
if (@tempPswd <> @pswd)
Print 'Error....'
Else
Begin
Update myTbl
Set pswd = @newPswd
Where id = @id and pswd = @pswd
End
@@ROWCOUNT
直前のステートメントが影響した行数を計算するために使用できます。
UPDATE myTbl
SET pswd = @newPswd
where id = @id and pswd = @pswd
if @@ROWCOUNT = 0
print 'Error - @id and/or @pswd didn''t match'
エラー状態だけでなく、RAISERROR
または(適切な場合) の使用も検討することをお勧めします。THROW
PRINT
返された特定の行数をさらに処理する必要がある場合は、それを変数に取り込んで処理する必要があります。すべてのステートメント@@ROWCOUNT
でリセットが発生します。
EXISTS()
機能を使用できます
IF EXISTS(SELECT * FROM myTbl WHERE id = @id and pswd <> @pswd)
BEGIN
print 'error'
END