当通过 MS SQL Server 2014 中的 C# 编程语言调用嵌入式 SQL 时,我在 Dispatching.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
建议非常感谢从僵局中克服。
先感谢您。——拉杰