1
存儲過程有什麼錯在執行應用程序動態查詢「錯誤」
消息156,15級,狀態1,關鍵字 「和」近11號線有語法錯誤我的代碼得到錯誤。
這是我的代碼。任何幫助將不勝感激。
ALTER PROCEDURE [dbo].[Usp_ReportList]
@pAccountType varchar(35)=null,
@pFromDate datetime=null,
@pToDate datetime=null,
@pAccountId int=null,
@pUserId int=null,
@pTeamId int=null
AS
BEGIN
SET NOCOUNT ON;
Declare @strSQL AS NVarchar(4000)
SET @strSQL ='
SELECT
OrderInfoId,
BorrowerFirstName,
BorrowerLastName,
RequestedURL,
Requests,
CustomerUserID As LenderId ,
o.RequestIPAddress As OriginatingIPAddress,
o.Requests As Status
from orderInfo o '
if(@pAccountType = 'Lender')
BEGIN
SET @strSQL += 'inner join [User] u on o.CustomerUserId = u.UID where 1=1'
END
else if(@pAccountType = 'Affiliate')
BEGIN
SET @strSQL += 'inner join [User] u on o.AffiliateID = u.UID where 1=1'
END
if(@pFromDate != '')
BEGIN
SET @strSQL += ' and o.RequestDateTime >= ''' + CONVERT(VARCHAR(25),@pFromDate) + ''''
END
if(@pToDate != '')
BEGIN
SET @strSQL += ' and o.RequestDateTime <= ''' + CONVERT(VARCHAR(25),@pToDate) + ''''
END
if(@pAccountId != '')
BEGIN
SET @strSQL += ' and u.UID in (select UID from [User] where AccountID = ' + CONVERT(VARCHAR(10),@pAccountId) + ') '
END
if(@pUserID !='')
BEGIN
SET @strSQL += ' and u.UserId = ' + CONVERT(VARCHAR(10),@pUserId) + ' '
END
if(@pTeamId !='')
BEGIN
SET @strSQL += ' and u.TeamId = ' + CONVERT(VARCHAR(10),@pTeamId) + ' '
END
SET @strSQL += '
GROUP BY
OrderInfoId,
BorrowerFirstName,
BorrowerLastName,
RequestedURL,
Requests,
CustomerUserID,
o.RequestIPAddress,
o.Requests'
EXEC (@strSQL)
--PRINT (@strSQL)
END
Exec Usp_ReportList 'Lender','2015-06-01 00:00:00','2015-06-02 00:00:00','2','1'
這裏是我的剖析genereated查詢
exec sp_executesql N'Exec Usp_ReportList @pAccountType,@pFromDate,@pToDate,@pAccountId,@pUserId,@pTeamId',N'@pAccountType nvarchar(1),@pFromDate datetime,@pToDate datetime,@pAccountId int,@pUserId int,@pTeamId int',@pAccountType=N'1',@pFromDate='2015-06-01 00:00:00',@pToDate='2015-06-02 00:00:00',@pAccountId=1,@pUserId=2,@pTeamId=2
得到錯誤
消息156,15級,狀態1,關鍵字 '和' 近11行的語法不正確。
能不能弄明白其中實際問題
使用PRINT(@strSQL)
SELECT
OrderInfoId,
BorrowerFirstName,
BorrowerLastName,
RequestedURL,
Requests,
CustomerUserID As LenderId ,
o.RequestIPAddress As OriginatingIPAddress,
o.Requests As Status
from orderInfo o and o.RequestDateTime >= 'Jun 1 2015 12:00AM' and o.RequestDateTime <= 'Jun 1 2015 12:00AM' and u.UID in (select UID from [User] where AccountID = 2) and u.UserId = 5 and u.TeamId = 5
GROUP BY
OrderInfoId,
BorrowerFirstName,
BorrowerLastName,
RequestedURL,
Requests,
CustomerUserID,
o.RequestIPAddress,
o.Requests
現在很難與這一個,現在引號是好的,但是當它在應用程序中執行時,我得到以下錯誤消息156,級別15,狀態1,行11 關鍵字'和'。你請幫忙這裏有什麼不對 – Teerth
把你的'PRINT'語句**放在'EXEC'之前,併發布SQL語句,以便我可以查看它。 –
我已更新我的問題請看看 – Teerth