我加載過程告訴我,當有一個錯誤在表中插入值時,UNIQUEIDENTIFIER是否爲自動生成的數字?
無法將NULL值插入列「請求ID」,表「MCAST.a01.tbl_enrollmentRequests」;列不允許有空值。 INSERT失敗。
現在requestID
是UNIQUEIDENTIFIER
類型的變量。 UNIQUEIDENTIFIER
是否爲自動生成號碼?以下是我的代碼示例,您可以在其中看到requestID
。
CREATE PROCEDURE [a01].[usp_auditAcceptRequest]
(@AccountID UNIQUEIDENTIFIER,
@GroupID UNIQUEIDENTIFIER,
@Reason NVARCHAR(45)
)
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [a01].[tbl_enrollmentRequests] (requestDate, groupID, accountID)
VALUES (SYSDATETIMEOFFSET(), @GroupID, @AccountID)
DECLARE @RequestID UNIQUEIDENTIFIER
SET @RequestID = (SELECT requestID
FROM [a01].tbl_enrollmentRequests
WHERE groupID = @GroupID AND accountID = @AccountID)
INSERT INTO [a01].[tbl_enrollmentAudits] (entryDate, requestID, groupID, accountID, accepted, reason)
VALUES (SYSDATETIMEOFFSET(), @RequestID, @GroupID, @AccountID, 1, @Reason)
DELETE FROM [a01].[tbl_enrollmentRequests]
WHERE requestID = @RequestID
END;
GO
這裏就是我在執行上述步驟
BEGIN
DECLARE @AccountID UNIQUEIDENTIFIER;
DECLARE @GroupID UNIQUEIDENTIFIER;
(SELECT @AccountID = accountID
FROM [a01].[tbl_userAccounts] WHERE accountUsername='saraht');
(SELECT @GroupID = groupID FROM [a01].[tbl_groups] WHERE groupName LIKE '%Foo%');
EXECUTE [a01].[usp_addRequest] @AccountID, @GroupID;
END;
GO
感謝您的幫助!
'UNIQUEIDENTIFIER'是一個** GUID **類型的列 - 但只是通過指定它,或者通過使它成爲表的**主鍵**不會爲其添加自動值 - 您需要**(1)**或者爲其指定一個**默認值**約束,或者**(2)**您需要實際**在該表的INSERT語句中提供一個值** –