在使用EXEC sp_executesql执行的sql查询中传递一个字符串变量

时间:2015-03-27 11:17:13

标签: sql sql-server string

如何使用EXEC sp_executesql在sql查询中传递字符串变量?

原始和有效的查询是:

update database01.dbo.Docs SET property1 = NULL where [name] like 'doc.xls'

我需要构建此查询,如下所示:

DECLARE @FileName   NVARCHAR(30),
        @Query      NVARCHAR(MAX)
SET @fileName = 'doc.xls'
SET @Query = 'update database01.dbo.Docs SET property1 = NULL where [LeafName] like ' + @FileName
EXEC sp_executesql @Query

非常感谢您的支持。

此致

1 个答案:

答案 0 :(得分:0)

对于给定的查询,您不需要动态SQL ...但是如果您想要这样做,则应该使用参数。

以下链接执行文档:sp_executesql

DECLARE @FileName   NVARCHAR(30),
        @Query      NVARCHAR(MAX)
SET @fileName = 'doc.xls'
SET @Query = N'update database01.dbo.Docs SET property1 = NULL where [LeafName] like = @File';       

EXECUTE sp_executesql @Query,N'@File NVARCHAR(30)', @File = @fileName;