gpt4 book ai didi

sql - select 语句上违反 PRIMARY KEY

转载 作者:行者123 更新时间:2023-12-02 09:00:00 24 4
gpt4 key购买 nike

我有一个如下所示的表格:

CREATE TABLE [dbo].[SomeTable](
[Guid] [uniqueidentifier] NOT NULL,
[Column1] [int] NOT NULL,
[Column2] [datetime] NOT NULL,
[Column3] [bit] NOT NULL,
[Column4] [smallint] NOT NULL,
[Column5] [uniqueidentifier] NULL,
[Column6] [varchar](100) NULL,
[Column7] [datetime] NULL,
[Column8] [datetime] NULL,
CONSTRAINT [pkSomeTable] PRIMARY KEY CLUSTERED
(
[Guid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
)

注意:为了保护无辜者,这些名字已被更改。

通过存储过程,我正在运行此查询:

SELECT SomeTable.Guid, SomeTable.Column1, SomeTable.Column2, SomeTable.Column3, SomeTable.Column4, SomeTable.Column5, SomeTable.Column6, SomeTable.Column7, SomeTable.Column8
FROM SomeTable
WHERE SomeTable.Guid = @Guid
ORDER BY SomeTable.Guid

运行后,我得到:违反主键约束“pkSomeTable”。无法在对象“dbo.SomeTable”中插入重复的键。 UniqueKeyConstraintException:重复的键。

我对如何仅运行 select 语句而出现这样的异常感到非常困惑。 table 上没有触发器。有谁知道这是如何发生的吗?

编辑:整个stp是:

    CREATE PROCEDURE dbo.stpSelectSomeTable
@Guid UNIQUEIDENTIFIER = NULL
AS
BEGIN
SET NOCOUNT ON

IF (@Guid is NULL)

SELECT SomeTable.Guid, SomeTable.Column1, SomeTable.Column2, SomeTable.Column3, SomeTable.Column4, SomeTable.Column5, SomeTable.Column6, SomeTable.Column7, SomeTable.Column8
FROM SomeTable
ORDER BY SomeTable.Guid

Else

SELECT SomeTable.Guid, SomeTable.Column1, SomeTable.Column2, SomeTable.Column3, SomeTable.Column4, SomeTable.Column5, SomeTable.Column6, SomeTable.Column7, SomeTable.Column8
FROM SomeTable
WHERE SomeTable.Guid = @Guid
ORDER BY SomeTable.Guid

END
GO

我确信调用此 STP 时 GUID 不为空。我也确信这是导致问题的声明。异常的堆栈跟踪向我展示了这一点。事实证明,发生这种情况的数据库已被删除并恢复到以前的版本。因此,我无法测试该声明。这是在这个问题交给我之前完成的。

最佳答案

我刚刚尝试了您上面发布的 SQL,没有发现 PK 违规,所以正如其他人指出的那样,该语句本身没有问题,所以它必须在其他地方。

至于如何解决该问题,您可以尝试使用SQL Profiler创建跟踪,然后运行SP。这应该可以帮助您找出导致 PK 违规的语句发生在哪里。您需要安装 SQL Profiler 才能使用此功能。以下是了解更多信息的链接: http://technet.microsoft.com/en-us/library/ms175047.aspx

关于sql - select 语句上违反 PRIMARY KEY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2042574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com