我在公司有一个自定义应用程序,我可以为用户创建一个位置,以便将它们的值输入到数据库中。 我提交数据的表有5列及其SQL CREATE Query,如下所示:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Log_Ongoing](
[ID] [int] IDENTITY(1,1) NOT NULL,
[LogType] [int] NULL,
[ActivityDate] [datetime] NOT NULL,
[ActivityDescription] [text] NULL,
[Train] [int] NULL,
CONSTRAINT [PK_Log_Ongoing] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[Log_Ongoing] WITH CHECK ADD CONSTRAINT [FK_Log_Ongoing_Trains] FOREIGN KEY([Train])
REFERENCES [dbo].[Trains] ([Id])
GO
ALTER TABLE [dbo].[Log_Ongoing] CHECK CONSTRAINT [FK_Log_Ongoing_Trains]
GO
此表的目的是记录工厂中正在进行的活动。 用户可以稍后通过选择报告数据然后修改数据来更新,添加或删除应用程序来修改这些活动。 我的想法是,在用户提交数据之前,我将首先删除具有相同报告日期的旧数据,然后再次插入新数据。 不幸的是,数据已成功提交,但未被删除。
我做了一个SQL跟踪来检查应用程序发送到数据库的查询,我发现了以下两个语句:
exec sp_executesql N'DELETE FROM Log_Ongoing WHERE ActivityDate = @StartDate',N'@startDate datetimeoffset(7)',@startDate='2017-02-12 07:00:00 +02:00'
exec sp_executesql N'INSERT INTO Log_Ongoing (LogType, ActivityDate, ActivityDescription, Train ) VALUES (1,@StartDate, @Activity, @Train)',N'@Train int,@Activity nvarchar(2),@startDate datetimeoffset(7)',@Train=1,@Activity=N'11',@startDate='2017-02-12 07:00:00 +02:00'
当我在SSMS中测试INSERT staement时,它工作正常,但是当我测试DELETE语句时,它没有工作。这个查询出了什么问题?