SQL DLETE语句不起作用

时间:2017-02-13 13:56:40

标签: sql sql-server sql-server-2008

我在公司有一个自定义应用程序,我可以为用户创建一个位置,以便将它们的值输入到数据库中。 我提交数据的表有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语句时,它没有工作。这个查询出了什么问题?

0 个答案:

没有答案