SQL 2008 では、2 つの NOT NULL 列があるテーブルを作成しました。ID 列である ID と日時データ型である DATETIME 列であり、デフォルト値またはバインディングで getdate() に設定しましたが、次の SP を実行すると以下のエラーが発生します。任意の提案/指示をいただければ幸いです。ありがとう。
次の SP を実行すると、次のエラーが表示されます。
USE [MachoPOSt]
GO
/****** Object: StoredProcedure [dbo].[sbssp_InsertTblArchivedMessages] Script Date: 03/08/2013
14:16:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sbssp_InsertTblArchivedMessages]
(
@xmlString varchar(max),
@fromToMach bit
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @idoc int, @lastId int
EXEC sp_xml_preparedocument @idoc OUTPUT, @xmlString
INSERT INTO [dbo].[tblArchivedMessages]
SELECT *
FROM OPENXML(@idoc, '/ATM', 2) WITH [dbo].[tblArchivedMessages]
EXEC sp_xml_removedocument @idoc
SET @lastId = (SELECT IDENT_CURRENT('tblArchivedMessages'))
UPDATE [dbo].[tblArchivedMessages]
SET FromToMach = @fromToMach
WHERE ID = @lastId
END
エラーは次のとおりです。
メッセージ 515、レベル 16、状態 2、手順 sbssp_InsertTblArchivedMessages、行 14 値 NULL を列 'DateTime'、テーブル 'MachoPOSt.dbo.tblArchivedMessages' に挿入できません。列はヌルを許可しません。INSERT は失敗します。ステートメントは終了されました。