【发布时间】:2015-05-05 09:19:20
【问题描述】:
这是我从表中选择数据的存储过程。但如果我把 where 条件放在里面。然后它抛出一个错误
“'=' 附近的语法不正确。”
但是如果我删除 where 条件,那么这个查询就可以正常工作。谁能告诉我我在哪里做错了什么。
alter procedure [dbo].[GetCompleteCPTDetails]
@Practice_Short_Name varchar(50) = null,
@Uploaded_Date varchar(max) = null
as
begin
DECLARE @CPTtablename varchar(100)
DECLARE @vQuery NVARCHAR(max)
set @CPTtablename = 'ACER_CLAIMS_MASTER_DETAIL_Hist_'+@Practice_Short_Name+''
SET @vQuery = 'select Practice_Short_Name,Service_Date_From,Carrier_Name,
Location_Description,Patient_Number,Patient_First_Name,
Patient_Last_Name,Voucher_Number,Procedure_Code,Service_Fees,
Service_Payments,Service_Adjustments,Acer_Status,Acer_Allowed_Amount
from ' + @CPTtablename + 'where Uploaded_Date ='+ @Uploaded_Date +'
order by acer_status asc, Service_Date_From desc, Patient_First_Name asc'
EXEC (@vQuery)
end
GO
【问题讨论】:
-
在
EXEC之前尝试PRINT @vQuery,看看正在生成什么查询。 -
在使用
nvarchar时,您应该在所有文字字符串之前使用N。即set @CPTtablename = N'ACER_CLAIMS_MASTER_DETAIL_Hist_'...。虽然不确定它是否能解决您看到的问题,但这是评论而不是答案
标签: sql sql-server-2008 stored-procedures