私は私にUNIQUEIDENTIFIERはテーブルに値を挿入するときに自動生成される番号ですか?
を伝える手順をロードすると、列にNULL値を挿入することはできませんエラーが発生している「requestID」、テーブル「MCAST.a01.tbl_enrollmentRequests」;列はNULLを許可しません。 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文に実際に値**を与える必要があります –