Declare @Name nvarchar(50) Declare @TID int DECLARE Temp_Cursor1 Cursor--定义游标 FOR SELECT Name FROM Sys_Entity OPEN Temp_Cursor1 FETCH Temp_Cursor1 INTO @Name WHILE @@fetch_status=0 BEGIN SET @TID=0 select @TID=id from [sysobjects] where [type] = 'u' and [name]=@Name print (@TID) if @TID>0 BEGIN exec('update Sys_Entity set MaxID=(select MAX(ID) from '+@Name+' ) where Name='''+@Name+'''') END FETCH Temp_Cursor1 INTO @Name END CLOSE Temp_Cursor1 DEALLOCATE Temp_Cursor1
更新最大ID时,忘记写where条件,导致把ID控制表Sys_Entity的所有ID都更新为相同的了。。
无奈之下,只能写个方法把所有表的最大ID重新取出来存到Sys_Entity