MSSQL 的游标更新
DECLARE @Phoneno bigint
DECLARE @oldPhone bigint
set @Phoneno = 18955162900
BEGIN TRY
DECLARE Employee_Cursor CURSOR FOR
SELECT phoneNumber FROM T_PersonalLib --SET phoneNumber = @Phoneno
OPEN Employee_Cursor;
FETCH NEXT FROM Employee_Cursor;
WHILE @@FETCH_STATUS = 0
BEGIN
set @Phoneno = @Phoneno+1
UPDATE T_PersonalLib SET phoneNumber = convert(varchar(20),@Phoneno) WHERE CURRENT OF Employee_Cursor
FETCH NEXT FROM Employee_Cursor
END;
CLOSE Employee_Cursor;
DEALLOCATE Employee_Cursor;
END TRY
BEGIN CATCH
PRINT ERROR_LINE()
PRINT ERROR_MESSAGE()
PRINT ERROR_NUMBER()
PRINT ERROR_SEVERITY() --严重极别
SELECT ERROR_MESSAGE() AS ErrorLine;
END CATCH
GO
测试时发现效率很低,5万条数据跑上十几分钟
曾经年少多少事 而今皆付谈笑中!

浙公网安备 33010602011771号