我想有這個過程,因爲能夠得到UNIQUEIDENTIFIER
值的輸出正常工作,但是當我嘗試執行它給我的錯誤查詢操作數類型衝突:int與uniqueidentifier不兼容。如何使唯一標識符的OUTPUT
操作數類型衝突:int與uniqueidentifier不兼容
我嘗試過不同的事情,但無法找到解決方案。
這裏是我的代碼
-- =================================================
-- Example: [mob].[procedureName] 369, NULL, 23741, "somePath", "SomeName", "clientName", NULL
-- Example: [mob].[procedureName]
-- Example: [mob].[procedureName]
-- =================================================
ALTER PROCEDURE [mob].[uspInsertEmail]
(
@ParamCompany VARCHAR(50),
@ParamDate DATETIME,
@ParamCreatedBy VARCHAR(50),
@ParamFilePath VARCHAR(200),
@ParamFileName VARCHAR(100),
@ParamClientFileName VARCHAR(100),
@ParamGUID UNIQUEIDENTIFIER OUTPUT
)
AS
DECLARE @GUID UNIQUEIDENTIFIER=NEWID()
INSERT INTO [mob].[tblEmail]
(
[Company],
[GuidString],
[Date],
[CreatedBy]
)
VALUES
(
@ParamCompany,
@GUID,
@ParamDate,
@ParamCreatedBy
)
INSERT INTO [mob].[tblEmailAttachment]
(
[Email],
[FilePath],
[FileName],
[ClientFileName],
[CreatedBy]
)
VALUES
(
IDENT_CURRENT ('mob.tblEmail'),
@ParamFilePath,
@ParamFileName,
@ParamClientFileName,
@ParamCreatedBy
)
SELECT @GUID AS EmailGuid
SET @ParamGUID = @GUID
我讀,我需要做的UNIQUEIDENTIFIER
是在OUTPUT
條款,但不知道究竟如何使@GUID
作爲OUTPUT
你擁有它的方式將返回你的guid變量。如果您希望將其作爲出站參數,則需要使用關鍵字OUTPUT將其定義在參數列表中。 –
順便說一下,我建議在第二個插入語句中使用SCOPE_IDENTITY()而不是IDENT_CURRENT來避免併發問題。 –
感謝您的迴應,但是即使我沒有將該值作爲參數傳遞,也會這樣嗎?因爲它被聲明和實例化爲局部變量。 – AndresM