Quais são os benefícios (se houver) de descartar uma tabela temporária no SQL Server?
por exemplo:
DROP TABLE #temp;
Como as tabelas temporárias são descartadas automaticamente pelo servidor, essa instrução parece não funcionar.
Quais são os benefícios (se houver) de descartar uma tabela temporária no SQL Server?
por exemplo:
DROP TABLE #temp;
Como as tabelas temporárias são descartadas automaticamente pelo servidor, essa instrução parece não funcionar.
Eu tenho um requisito para criar um procedimento armazenado que emule uma sequência TSQL. Ou seja, sempre fornece um valor inteiro distinto crescente em cada chamada. Além disso, se um inteiro for passado, ele deve retornar esse valor se nunca houver um resultado maior ou o próximo inteiro mais alto disponível. Escusado será dizer que pode haver vários clientes ligando para este SP ao mesmo tempo.
Dada uma tabela MetaInfo com colunas MetaKey varchar(max) e MetaValueLong bigInt. Espera-se que a linha com a MetaKey de 'Internal-ID-Last' contenha o último valor mais alto atribuído. Eu criei o seguinte procedimento armazenado:
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
Minha pergunta é simples: esse procedimento armazenado funciona conforme o esperado (todos os chamadores receberão um resultado exclusivo)?