【问题标题】:A transport-level error has occurred - The specified network name is no longer available. ( Azure Synapes )发生传输级错误 - 指定的网络名称不再可用。 (天蓝色突触)
【发布时间】:2023-03-23 02:03:01
【问题描述】:

我有两个要合并的表

表 A

COL A COL B COL C
1 2 value
2 2 value

表 B

COL A COL B COL C
1 2 value
2 2 newvalue

合并 SQL

MERGE INTO dbo.TableA AS target  
    USING dbo.TableB AS source 
    ON 
    (
        target.ColA = source.ColA AND
        target.ColB = source.ColB 
    )
    WHEN MATCHED THEN
            UPDATE SET 
            target.COLC = source.COLC
    WHEN NOT MATCHED THEN  
            INSERT (COLA, COLB, COLC)  
            VALUES (source.COLA, source.COLB, source.COLC);

每当我运行上述代码时,我的数据库(Azure 突触,专用池)都会引发以下错误,然后停止响应大约 20 秒。

“从服务器接收结果时发生传输级错误。(提供者:TCP Provider,错误:0 - 指定的网络名称不再可用。)”

我怀疑它与合并的更新部分有关。因为我第一次运行语句 (表A中没有任何数据)它工作得很好并插入了两行。但是如果我再次运行它会失败并出现传输级错误

【问题讨论】:

  • 建议您联系客服。服务器进程有可能正在转储并关闭连接。 (可能是由于错误)

标签: azure azure-synapse


【解决方案1】:

可能是超时了,如果你使用的是Sql Server Management Studio,可以试试扩展:

您的帖子没有说明您使用的是什么客户端 - 如果是 .NET 代码,可能希望在您的连接或查询上设置 CommandTimeout

如果这不起作用,可能会延长查询执行超时(如果它还不是零):

【讨论】:

  • 感谢您的建议!我正在使用 SQL Server Management Studio,不幸的是,延长事务超时没有用
  • 增加了一个超时时间来查看。
  • 执行超时为 0 - 即使它只是我试图合并的两行,它也会引发错误,所以我认为这不是超时问题。
  • 我想排除这种可能性,因为您声明它停止响应 20 秒。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-13
  • 2022-11-25
  • 2010-09-30
  • 2021-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多