SQL Server:如何编写和执行预准备语句?

Tau*_*sif 4 sql t-sql sql-server dynamic-sql prepared-statement

在MySQL中,我们可以使用生成预准备语句PreparedStatement.

我想在SQL脚本中实现相同的功能.如何创建预准备语句以及如何执行它?请举例说明.

Tim*_*ner 14

我会建议使用sp_executesqlexec的最有活力的SQL. sp_executesql类似于MySQL EXECUTE...USING,它可以采用参数而不仅仅是连接字符串,因此可以很好地防御SQL注入.sp_executesql还允许SQL Server重用查询计划以进行更有效的查询.这是一个例子:

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
Run Code Online (Sandbox Code Playgroud)

可以在此处找到更多信息和示例.