簡體   English   中英

數據庫SQL Server中已經存在一個對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM