5

在 MySQL 中,我们可以使用PreparedStatement.

我想在 SQL 脚本中实现相同的功能。如何创建准备好的语句以及如何执行它?请为此提供一个例子。

4

1 回答 1

15

我建议对大多数动态 SQL 使用sp_executesqlover 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

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

于 2012-08-16T12:44:40.490 回答