CREATE PROCEDURE ReFolderName @tableName text,@length int,@compareText text,@intResult int output
As
begin
if @tableName is null
select @intResult = 0
return
exec('Select * from '+ @tableName+ 'where left(path,'+@length+')='+@compareText)
if @@ROWCOUNT <= 0
select @intResult='0'
else
select @intResult='1'
end
GO

解决方案 »

  1.   

    exec (N'Select * from '+@tableName+' where left(path,'+@length+')='''+@compareText+'''')
    需要用到动态语句。
      

  2.   

    另外,你的@compareText是 text 类型,要转化一下
    exec('Select * from '+ @tableName+ 'where left(path,'+@length+')='+convert(varchar(8000),@compareText))
      

  3.   

    CREATE PROCEDURE ReFolderName (@tableName text,@length int,@compareText text,@intResult int output)
    参数没有加括号
      

  4.   

    一般那些text varchar nchar等等这些我都是乱用的,不知道有什么区别,各用在什么时候......大家帮我解释一下吧,谢谢了.另外lsqkeke(可可)写的是正确的!感谢