在 SQL Server 中删除临时表有什么好处(如果有)?
例如:
DROP TABLE #temp;
由于服务器会自动删除临时表,因此该语句似乎不起作用。
在 SQL Server 中删除临时表有什么好处(如果有)?
例如:
DROP TABLE #temp;
由于服务器会自动删除临时表,因此该语句似乎不起作用。
我需要创建一个模拟 TSQL 序列的存储过程。也就是说,它总是在每次调用时给出一个递增的不同整数值。此外,如果传入一个整数,如果从未有更大的结果或下一个可用的最高整数,它应该返回该值。不用说可以有多个客户端同时调用这个 SP。
给定一个包含 MetaKey varchar(max) 和 MetaValueLong bigInt 列的 MetaInfo 表。预计 MetaKey 为“Internal-ID-Last”的行将包含最后分配的最高值。我创建了以下存储过程:
CREATE PROCEDURE [dbo].[uspGetNextID]
(
@inID bigInt
)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION
UPDATE MetaInfo WITH (ROWLOCK)
SET MetaValueLong = CASE
WHEN ISNULL(MetaValueLong,0) > @inID THEN MetaValueLong+1
ELSE @inID+1
END
WHERE MetaKey = 'Internal-ID-Last'
SELECT MetaValueLong
FROM MetaInfo
WHERE MetaKey = 'Internal-ID-Last'
COMMIT TRANSACTION
END
我的问题很简单,这个存储过程是否按预期工作(所有调用者都将被分配一个唯一的结果)?