SQL SERVER 2000和Sql server 2008区别太大了
一个简单的测试,大家可以测试CREATE TABLE INVENTORY
(
  INVCODE NVARCHAR(10) NOT NULL PRIMARY KEY
  INVNAME NVARCHAR(30) NOT NULL)INSERT INTO INVENTORY(INVCODE,INVNAME) VALUES('1040165','TEST');
INSERT INTO INVENTORY(INVCODE,INVNAME) VALUES('1040166','TESTS');
开始测一下锁
运行以下代码
A代码
USE TEST
GO
BEGIN TRAN
  SELECT INVCODE,INVNAME
  FROM INVENTORY  WITH(ROWLOCK)
  WHERE INVCODE='1040165'; 
  WAITFOR DELAY '00:00:05'
IF(@@ERROR!=0)
BEGIN
DECLARE @I INT
DECLARE @N NVARCHAR(200)
ROLLBACK TRAN
RAISERROR(5005,11,1,@I,@N);
END
COMMIT TRAN等上面的代码还没有完成,运行以下代码
B代码
UPDATE INVENTORY
SET INVNAME='DD021'
WHERE INVCODE='1040165'
SELECT INVCODE,INVNAME FROM INVENTORY WHERE INVCODE='1040165'上面的代码在2008中,A运行完了,B然后就运行了.可是在2000中,
B代码卡了...............
Oracle任何版本也不会这样,太低降的错误了