【发布时间】:2020-09-24 20:48:32
【问题描述】:
我无法在此存储过程的最后一行的最后一个单词中添加单引号
PROCEDURE PROC1(@ProductName nvarchar(40))
AS
BEGIN
DECLARE @sql nvarchar(MAX), @debug bit = 1
SET @sql = 'Select [Created] as [Date],[SerialId],[ProductId], CreatedById as [UserId]
from [Customer].[dbo].[QuotationFlat] QF inner join [Customer].[dbo].[Product] Pt on Pt.Status=QF.' + @ProductName +'
where '+ @ProductName +' = 1 and Productid = (
SELECT Productid
FROM Product
WHERE Productid = (SELECT MAX(Productid) AS Productid
FROM Product
WHERE ProductName = ' + @ProductName + '))'
SELECT @sql
-------------Last line Issue------------------
FROM Product
WHERE ProductName = Test))
----------But there should be single quote around word TEST
【问题讨论】:
-
使用
sp_executesql和参数。 -
还有
quotename() -
select quotename('sometext', '''')但我会使用sp_executesql并参数化我的查询。
标签: sql sql-server stored-procedures dynamic