在 SQL 2008 中,我创建了一个表,其中有 2 个 NOT NULL 列。作为标识列的 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';列不允许空值。插入失败。该语句已终止。