當我想在SQL Server中運行以下查詢時,出現以下2個錯誤: - 如何解決錯誤?你可以幫我嗎?運行SQL Server存儲過程(更新)
運行:
exec [dbo].[sp_siparisTest] 0,25,'','',''
錯誤:
消息156,15級,狀態1,53號線 關鍵字 'ORDER' 附近有語法錯誤。
Msg 102,Level 15,State 1,Line 53 '25'附近的語法不正確。
ALTER PROC [dbo].[sp_siparisTest]
(
@PageNo INT,
@RowCountPerPage INT,
@adsoyadfilter NVARCHAR(50),
@odemetip NVARCHAR(20),
@durumu NVARCHAR(20)
)
AS
BEGIN
DECLARE @devam_ nvarchar(max)
SET @devam_ ='SELECT
u.AdiSoyadi as AdSoyad,
ot.Adi as OdemeTipAdi,
sd.Adi as SiparisDurumAdi,
s.OlusturmaTarihi as OlusturmaTarihi,
s.GenelToplam as GenelToplam
FROM
\t Siparis as s with(NOLOCK)
inner join
\t SiparisDurum as sd with(NOLOCK) on s.Durumu=sd.Id
inner join
\t Uye as u with(NOLOCK) on s.Uye_Id=u.Id
inner join
\t OdemeTip as ot with(NOLOCK) on s.OdemeTip=ot.Id where ' \t
IF(@adsoyadfilter !='')
\t SET @devam_ += '(u.AdiSoyadi LIKE ''%'' + '+ @adsoyadfilter +' + ''%'') AND'
IF(@odemetip != '')
\t SET @devam_ += ' ot.Id IN(SELECT Value FROM fn_Split('+ @odemetip +' , '','')) AND'
IF(@odemetip != '')
\t SET @devam_ += ' s.Durumu IN(SELECT Value FROM fn_Split('[email protected] +','',''))'
SET @devam_ +=' ORDER BY s.Id OFFSET (' + cast(@PageNo as nvarchar(255)) + ') ROWS FETCH NEXT (' + cast(@RowCountPerPage as nvarchar(255)) + ') ROWS ONLY'
END
EXECUTE sp_executesql @devam_
注意:你應該**不要**爲你的stor使用'sp_'前綴編輯程序。微軟已經保留了這個前綴以供自己使用(參見*命名存儲過程*)](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx),以及你將來有可能冒着名字衝突的風險。 [這對你的存儲過程性能也是不利的](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)。最好只是簡單地避免使用'sp_'並將其他內容用作前綴 - 或者根本沒有前綴! –
你應該使用print @ devv_來顯示你的錯誤並解決。 –
'@ PageN'o和'@ RowCountPerPage'必須連接在... – scsimon