簡體   English   中英

SQL Server:返回的UniqueIdentifier,操作數類型沖突:uniqueidentifier與int不兼容

[英]SQL Server: Returning UniqueIdentifier, Operand type clash: uniqueidentifier is incompatible with int

嘗試從存儲過程返回唯一標識符時出現此錯誤-想法?

操作數類型沖突:uniqueidentifier與int不兼容

碼:

CREATE PROCEDURE TEST
AS
    RETURN NEWID()

存儲過程只能“返回”一個INT (它被用作狀態碼)。 如果要從存儲過程中獲取其他數據,則應SELECT它。 從進行調用的代碼中訪問數據可能有所不同,但這就是您必須這樣做的方式。

例如:

CREATE PROCEDURE Test
AS
    SELECT NEWID()

SQL Server中的過程不返回值。 好吧,有一個隱式整數狀態,但這不是您想要的。

也許您打算:

CREATE PROCEDURE TEST (
    @out_id uniqueidentifier output
)
AS
BEGIN
    SET @out_id = NEWID();
END;

或者,也許您想定義一個函數:

CREATE FUNCTION TEST
RETURNS uniqueidentifier
BEGIN
    RETURN NEWID();
END;

但是,我不相信您真的可以這樣做,因為newid()被認為具有副作用-並且SQL Server函數中不允許這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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