Mit Hilfe von anderen auf SO habe ich heute morgen ein paar Tabellen und Stored Procedures, wie ich bin weit von einem DB-Programmierer.Ist diese gespeicherte Prozedur Thread-sicher? (oder was auch immer die Äquivalenz auf SQL Server ist)
Würde es jemandem etwas ausmachen, einen Blick darauf zu werfen und mir zu sagen, ob es threadsicher ist? Ich denke, das ist wahrscheinlich nicht der Begriff, den DBAs/DB-Entwickler verwenden, aber ich hoffe, Sie haben die Idee: Was passiert eigentlich, wenn dieser Computer ausgeführt wird und ein anderer zur selben Zeit kommt? Könnte man sich in den anderen einmischen? Ist das sogar ein Problem in SQL/SPs?
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
Ich stimme der Antwort von gbn vollständig zu, möchte aber hinzufügen, dass Sie dies selbst leicht herausfinden können - Sie können einfach Ihre gespeicherte Prozedur gleichzeitig von zwei oder mehr Verbindungen in einer Schleife laufen lassen (> 1mln) und nachsehen dich selber. –