1

可能是我今天花了太长时间看这个所以很愚蠢。但........

我有一个简单的存储过程可以做到这一点;

BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    DELETE FROM ProductLoading
END

该表ProductLoading由 3 个字段组成,其中非关键字段。这是一个临时表,当从单独的数据源加载数据时,它需要在短时间内保存数据。我这样做是为了检查产品是否被删除。

现在,当此代码运行时,它还会从另一个表中删除所有内容Products3. 如果我将此行注释掉,则不会。

不是键和索引方面的专家,但有基本的掌握。但是查看了这两个表后,看不到任何依赖项。另外,当我运行执行计划时,它不会对Products3表进行任何引用。

真的卡在这个了。任何人都可以告诉我我忽略了什么。

4

4 回答 4

1

听起来像级联参照完整性约束。您确定其中的 3 个字段之一ProductLoading不是键吗?

于 2012-06-08T19:32:23.883 回答
1

不知道发生了什么故障。

但是经过一番头大的困惑,基本上是在存储过程中添加了一个虚拟的插入语句并重新编译它。

奇怪的是,删除语句没有过滤到 Products3 表。

然后我删除了这个虚拟的插入语句,更奇怪的是存储过程继续工作。

现在唯一不同的是,当这些表是用错误的模式创建的时候。我立即意识到这一点,并在正确的架构下重新创建了表,并删除了错误创建的表。此时没有数据存在,因此不确定在此期间是否有任何损坏。看不出是怎么回事,但是嘿,1 和 0 有时不能加起来。

所以没有这样的解决方案,只是 li 之一

于 2012-06-10T11:59:15.007 回答
0

理论上,您的表 ProductLoading 可能有删除触发器?

于 2012-06-08T19:33:15.210 回答
0

ProductLoading 加载必须包含一个主键,该主键是另一个启用了级联删除的表的外键。

在此处输入图像描述

于 2012-06-08T19:30:14.763 回答