Я знаю, что этот вопрос задавался много раз. Но я много гуглил и также просматривал ответы здесь, но не мог понять, почему моя хранимая процедура неоднократно выдает эту ошибку, поскольку go один и тот же код прекрасно работал.
Пожалуйста, любой может помочь мне определить, почему возникла эта ошибка. Кроме того, даже если это работало, я не получал желаемый результат, так как я хочу генерировать порядковые номера, но я получаю то же число, что и количество.
USE [Sost_Dev]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [sost].[GetExternalOrderNumbers]
@Count int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @year VARCHAR(2)
DECLARE @ExternalOrderNumbers nvarchar(50)
SET @year = RIGHT(CAST(DATEPART(yy, GETUTCDATE()) AS VARCHAR(4)),2)
-- Insert statements for procedure here
BEGIN TRAN
SAVE TRAN seq
--Creating Temp Table for every isolated connection
CREATE TABLE #NewOrders(ExtOrderNumber nvarchar(50));
WHILE @Count > 0
BEGIN
INSERT INTO [sost].ServiceOrderNumberSequence DEFAULT VALUES
SET @ExternalOrderNumbers = 'ESON' + @year + RIGHT(REPLICATE('0',10) + CAST(SCOPE_IDENTITY() AS NVARCHAR(7)) ,7);
print 'External' + @ExternalOrderNumbers;
--Insert New Order Number to Temporary Tables
INSERT INTO #NewOrders values(@ExternalOrderNumbers)
SET @Count -=1
END
COMMIT
--Fetching Order Numbers from Temporary Table.
SELECT @ExternalOrderNumbers as ExternalOrderNumber from #NewOrders
END
Пожалуйста, см. Изображение ниже для ошибки в моем SQLServer ![enter image description here](https://i.stack.imgur.com/WlOJy.png)
![enter image description here](https://i.stack.imgur.com/inGCn.png)
Пожалуйста, найдите результат Все номера заказов одинаковы, но я хочу последовательно. ![enter image description here](https://i.stack.imgur.com/sIblc.png)