sql2000检查语法正确,但在查询分析器打开出错,请指教! 各位大虾:
我是一名企业会计主管,现作一项目,用到sql2000存储过程,其中一段语句
create PROCEDURE resetcolumn
(
@tablename varchar(50),
@liename varchar(50)
)
as
begin
... declare @id int,@mid int
exec('select'+@mid+'=min('+@liename+'),@id=@mid FROM' + @tablename)
exec('update'+@tablename+' set @liename=@id,@id=@id+1 where @liename>@mid')
...
在查询分析器里打开后,出现下述错误提示:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '=' 附近有语法错误。
服务器: 消息 137,级别 15,状态 2,行 1
必须声明变量 '@id'。
在线紧急求解!
sql
------解决方案-------------------- declare @id int,@mid int,@sql nvarchar(4000)
set @sql='select @mid=min('+@liename+'),@id=min('+@liename+') FROM加一个空格' + @tablename
exec sp_executesql @sql,N'@mid int output,@id int output',@mid output,@id output
set @sql='update '+@tablename+' set '+@liename+'=@id,@id=@id+1 where '+@liename+'>@mid'
exec sp_executesql @sql,N'@mid int output,@id int output',@mid,@id output