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

时间:2012-08-16 09:51:12

标签: sql sql-server tsql prepared-statement dynamic-sql

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

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

1 个答案:

答案 0 :(得分:14)

对于大多数动态SQL,我建议使用sp_executesql而不是execsp_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

可以找到更多信息和示例here