C# 如何通过SQLServer2014中的C从嵌入式SQL的死锁中恢复过来?

C# 如何通过SQLServer2014中的C从嵌入式SQL的死锁中恢复过来?,c#,database-deadlocks,sql-server-2014,embedded-sql,C#,Database Deadlocks,Sql Server 2014,Embedded Sql,当在MS SQL Server 2014中通过C编程语言调用下面的嵌入式SQL时,我在dispatch.PackageTrace表上面临死锁问题 以下是数据库中的表设计: CREATE TABLE [Dispatching].[PackageTrace]( [PackageID] [uniqueidentifier] ROWGUIDCOL NOT NULL, [PartitionID] [numeric](26, 0) NULL, [Conduit] [nvarchar](255) N

当在MS SQL Server 2014中通过C编程语言调用下面的嵌入式SQL时,我在dispatch.PackageTrace表上面临死锁问题

以下是数据库中的表设计:

    CREATE TABLE [Dispatching].[PackageTrace](
[PackageID] [uniqueidentifier] ROWGUIDCOL  NOT NULL,
[PartitionID] [numeric](26, 0) NULL,
[Conduit] [nvarchar](255) NOT NULL,
PRIMARY KEY CLUSTERED 
  (
    [PackageID] ASC
  )    GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [Dispatching].[PackageTrace] ADD  DEFAULT (getdate()) FOR [DateCreated]
GO
以下嵌入式SQL在MS SQL Server 2014中通过C编程语言调用:

IF EXISTS(SELECT * FROM Dispatching.PackageTrace WHERE PackageID = 'klaslndsskok230m')
    BEGIN
            UPDATE [Dispatching].[PackageTrace] SET [Conduit] = @Conduit                WHERE [PackageID] = 'klaslndsskok230m'
    END
ELSE 
    BEGIN
        INSERT INTO [Dispatching].[PackageTrace] ([PackageID] ,[PartitionID] ,[Conduit]          VALUES (@PackageID, @PartitionID, @Conduit)
    END
建议真的很感谢打破僵局

先谢谢你。
-Raj

死锁发生在哪里或什么位置?您需要一个死锁跟踪图来找出死锁发生的原因。贾斯汀,谢谢你的评论。我会检查一下死锁,我想死锁在packageTree表上。我会看到跟踪图也会让你知道,如果我仍然面临的问题。