[英]There already exists an object in the database SQL Server
我創建了一個存儲過程,該存儲過程根據一個條件返回表的最后插入行的ID。
這樣的條件是,如果要插入的行已經存在,則它將占據該行的標識列,否則將向表中插入新行。
為此,我在存儲過程中編寫了以下代碼
ALTER PROCEDURE [dbo].[Test_Procedure]
@description nvarchar(max)
AS
BEGIN
DECLARE @tempId int;
SELECT CommentId
INTO tempId
FROM TestTable
WHERE description = @description;
IF @tempId IS NULL
BEGIN
INSERT INTO TestTable
VALUES (@description);
SELECT scope_identity();
END
ELSE
BEGIN
SELECT @tempId FROM dual;
END
DROP TABLE tempId;
END
當我運行上面的存儲過程時,第一次運行成功,然后在病房開始拋出以下錯誤消息
消息2714,級別16,狀態6,過程Test_Procedure,第15行
數據庫中已經有一個名為“ tempId”的對象。
我不明白的一點是tempId
用作變量而不是表。 我見過有類似問題的人,但在他們的情況下,他們使用了臨時表
非常感謝您為解決上述問題所提供的幫助。
嘗試使用以下語法來設置變量。
SELECT @tempId = CommentId from TestTable where description = @description;
當前,您的“選擇進入”正在數據庫上創建表“ tempId”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.