无论怎么修改 怎么改动 怎么用执行的时候都出现这个恶心的错误
消息 214,级别 16,状态 2,过程 sp_executesql,第 1 行
过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。

解决方案 »

  1.   

    @statement 参数用NVARCHAR类型
      

  2.   

    EXECUTE sp_executesql 
              N'SELECT * FROM AdventureWorks.HumanResources.Employee 
              WHERE ManagerID = @level',
              N'@level tinyint',
              @level = 109;
      

  3.   

    set @sql = 'declare @Tables as table(id int identity(1,1),nid int);
    insert into @Tables(nid) SELECT ['+ @idname +'] FROM ['+ @tablename +'] where ['+@condition+'] order by ['+@idname+'] desc'
    exec (@sqL)
      

  4.   

    记住把你的SQL语句的字符串变量设置成 NVARCHAR()类型 
    EXECUTE sp_executesql  @s-- 这里的@s需要NVARCHAR()类型 
      

  5.   

    set @sql = N'select * From [' +@tablename+ '] O,@Tables t where O. ['+@idname+'] =t.nid And t.id between '+str(@Start)+' And '+str(@End)+' order by t.id'
    exec SP_ExecuteSql @sql,N'@Tables table output',@Tables output
    set @sql = N'select * From [' +@tablename+ '] O,@Tables t where O. ['+@idname+'] =t.nid And t.id between '+str(@Start)+' And '+str(@End)+' order by t.id'
    exec SP_ExecuteSql @sql,N'@Tables table output',@Tables output
    到底怎么错了?消息 137,级别 15,状态 2,过程 T_Hotels_Page,第 29 行
    必须声明标量变量 "@Tables"。
      

  6.   


    用的 你说的我知道的现在是这个出错了  set @sql = N'select * From [' +@tablename+ '] O,['+@Tables+'] t where O. ['+@idname+'] =t.nid And t.id between '+str(@Start)+' And '+str(@End)+' order by t.id'
    exec (@sql)说@table没有定义