首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sp_executesql有关问题,求帮忙(,给分)

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

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
          

热点排行