0
私はトリガを作成し、その内部に動的SQLが実行されます。ここでDynamic Sqlが失敗したことを識別する方法は?
サンプルスクリプトです:
私はいくつかの値に@Text
を指定する場合、それは(Execがaffetected 1行を表示した後)動作しますが、私がnullを指定しています、 レコードがテーブルに追加されませ(メッセージ:クエリが実行さレコードがサンプルテーブルに追加されない場合、plsは動的挿入なしでサンプル2に追加されます。動的execを正しく検出する方法はありません。テーブルの最後のIDを取得する必要はありません。それを行う?
declare @Inserttbl nvarchar(4000)
declare @TableName varchar(50)
declare @PId int
declare @Text varchar(50)
declare @count int
declare @Status int
set @TableName ='sample'
set @Text = null
set @PId = 3
set @Status =1
set @Inserttbl = ' Insert into Test.dbo.' [email protected] +' values ('[email protected]+','[email protected]+','[email protected]+')'
exec sp_executesql @Inserttbl
文字列を作成し、文字列としてnullを追加するとどうなりますか? – TZHX
質問:このコードでSQLインジェクションを防ぐためにsqlパラメータを使用することをお勧めします。 – John
[SQL Server String Concatenation with Null]の重複の可能性があります(http://stackoverflow.com/questions/2916791/sql-server-string-concatenation-with-null) – TZHX