Con l'aiuto di altri su SO ho stoppato un paio di tabelle e stored procedure, stamattina, dato che sono lontano da un programmatore DB.Questa stored procedure è thread-safe? (o qualunque cosa equiv sia su SQL Server)
Qualcuno dispiacerebbe lanciare un occhio su questo e dirmi se è thread-safe? Immagino che probabilmente non è il termine usato dagli sviluppatori di DBA/DB, ma spero che tu abbia l'idea: in pratica, cosa succede se questa sp è in esecuzione e un'altra arriva allo stesso tempo? Si potrebbe interferire con l'altro? Si tratta di un problema anche in SQL/SP?
CREATE PROCEDURE [dbo].[usp_NewTicketNumber]
@ticketNumber int OUTPUT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [TEST_Db42].[dbo].[TicketNumber]
([CreatedDateTime], [CreatedBy])
VALUES
(GETDATE(), SUSER_SNAME())
SELECT @ticketNumber = IDENT_CURRENT('[dbo].[TicketNumber]');
RETURN 0;
END
Sono completamente d'accordo con la risposta di gbn, ma vorrei aggiungere che si può facilmente capire da soli - è possibile eseguire la procedura memorizzata contemporaneamente da due o più connessioni in un ciclo mnay volte (> 1mln), e vedere per te stesso. –