日期:2014-05-17 浏览次数:20451 次
--不需要考虑隔离级别,SQL SERVER自己管理,高并发下也没问题(注意:事务回滚时会出现不连续现象)。参考如下
CREATE TABLE dbo.test
(
id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
NAME varchar(MAX)
)
--#1.每次插入1行
DECLARE @id int
INSERT INTO dbo.test(NAME) VALUES('name1')
SET @id = SCOPE_IDENTITY() --用这个取,万无一失。@@idenitty的话,还要考虑表上是否有触发器
--#2.每次插入N行
DECLARE @temp TABLE
(
id int NOT NULL PRIMARY KEY
)
INSERT INTO dbo.test(NAME)
OUTPUT INSERTED.id
INTO @temp(id)
SELECT 'name2' UNION ALL
SELECT 'name3' UNION ALL
SELECT 'name4'
SELECT * FROM @temp --3条记录自增的ID全部在这里面.