各位大虾:
我是一名企业会计主管,现作一项目,用到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
------解决方案--------------------
好吧。。没注意,from这里要与表名分开
------解决方案--------------------
DBA_Huangzj 有空帮我看一下我的问题吧, 很头疼应该怎么写
http://bbs.csdn.net/topics/390386430?page=1#post-393864201