5

MySQL では、 を使用して準備済みステートメントを生成できますPreparedStatement

SQL スクリプトで同じ機能を実現したいと考えています。準備されたステートメントを作成する方法とそれを実行する方法は? その例を挙げてください。

4

1 に答える 1

15

ほとんどの動的 SQL に はsp_executesqloverを使用することをお勧めします。連結された文字列だけでなくパラメーターを受け取ることができるという点でMySQL に似ているため、SQL インジェクションに対する優れた防御を提供します。また、SQL Server がクエリ プランを再利用して、より効率的なクエリを実行できるようにします。次に例を示します。execsp_executesqlEXECUTE...USINGsp_executesql

exec sp_executesql
    @statement = N'select * from sys.databases where name = @dbname or database_id = @dbid',
    @parameters = N'@dbname sysname, @dbid int',
    @dbname = N'master',
    @dbid = 1

詳細と例については、こちらを参照してください。

于 2012-08-16T12:44:40.490 に答える