读书人

sp_executesql有关问题求帮忙(给

发布时间: 2013-11-29 13:49:33 作者: rapoo

sp_executesql问题,求帮忙(在线等,给分)
本帖最后由 yo_you920821 于 2013-11-28 16:03:05 编辑

exec sp_executesql N'SELECT A.* FROM (SELECT *,ROW_NUMBER() over (ORDER BY Id DESC) as ROWNUM FROM (
SELECT * FROM App_Attachment_TD T1 WHERE 0=0 AND T1.ID IN @IDS AND 0=0 AND 0=0
) B) A WHERE ROWNUM BETWEEN @ROWSTART AND @ROWEND',N'@IDS nvarchar(10),@ROWSTART int,@ROWEND int',@IDS=N'(24,25)',@ROWSTART=1,@ROWEND=2147483647


总是报“消息 102,级别 15,状态 1,第 2 行Incorrect syntax near '@IDS'.”的错误,找不到原因。。帮帮忙吧各位 SQL
[解决办法]
try this,

exec sp_executesql N'SELECT A.* FROM (SELECT *,ROW_NUMBER() over (ORDER BY Id DESC) as ROWNUM FROM (
SELECT * FROM App_Attachment_TD T1 WHERE 0=0 AND T1.ID IN '+@IDS+' AND 0=0 AND 0=0
) B) A WHERE ROWNUM BETWEEN @ROWSTART AND @ROWEND',
N'@IDS nvarchar(20),@ROWSTART int,@ROWEND int',@IDS=N'(24,25)',@ROWSTART=1,@ROWEND=2147483647

[解决办法]
改成这样试试:
exec sp_executesql N'SELECT A.* FROM (SELECT *,ROW_NUMBER() over (ORDER BY Id DESC) as ROWNUM FROM (
SELECT * FROM App_Attachment_TD T1 WHERE 0=0 AND charindex('',''+cast(T1.ID as varchar)+'','', '',''+@IDS+'','') AND 0=0 AND 0=0
) B) A WHERE ROWNUM BETWEEN @ROWSTART AND @ROWEND',N'@IDS nvarchar(10),@ROWSTART int,@ROWEND int',@IDS=N'''24'',''25''',@ROWSTART=1,@ROWEND=2147483647

读书人网 >SQL Server

热点推荐