GVKun编程网logo

MERGE的算术溢出错误(数字到数字):SQL Server错误?(numeric算术溢出错误)

25

在本文中,我们将给您介绍关于MERGE的算术溢出错误的详细内容,并且为您解答数字到数字:SQLServer错误?的相关问题,此外,我们还将为您提供关于ms-access更新整数值导致算术溢出算术溢出错

在本文中,我们将给您介绍关于MERGE的算术溢出错误的详细内容,并且为您解答数字到数字:SQL Server错误?的相关问题,此外,我们还将为您提供关于ms-access 更新整数值导致算术溢出算术溢出错误将表达式转换为数据类型 int、MsSqlServer错误、sql server 除法高精度多位小数除法溢出错误、sql server存储引擎启动错误(SQL Server could not spawn FRunCM thread)的知识。

本文目录一览:

MERGE的算术溢出错误(数字到数字):SQL Server错误?(numeric算术溢出错误)

MERGE的算术溢出错误(数字到数字):SQL Server错误?(numeric算术溢出错误)

我有一个TargetTable具有一DECIMAL(20, 7)列的目标表。我也有一个SourceTable具有一DECIMAL(20,7)列的源表,但是该表中的值无论如何都是整数。

当我尝试将数据UPSERT成TargetTableSourceTable通过MERGE声明,我得到一个标准错误。

将数字转换为数据类型数字的算术溢出错误。

我真的不明白为什么会发生这种情况,因为两种数据类型都是相同的。

但是,奇怪的是:当我使用SELECTINTOonTargetTable创建测试表TestTable,然后将合并目标更改TestTable为时,upsert完成。我也不明白为什么会这样,因为TargetTable并且TestTable在大多数情况下都是相同的。

以前是否有人遇到过这个问题,这是一个错误,还是我缺少一些模糊的SQL Server细微差别?


样例代码

失败:

SET NUMERIC_ROUNDABORT OffGOMERGE    TargetTable TargetUSING    (        SELECT            cast(forecast as DECIMAL(20, 7)) forecast          ,[SegmentID]          ,[Country]          ,[Environment]          ,[YearColumn]          ,[ForecastYear]          ,[Criterion]        FROM            SourceTable    ) Source    ON    (        Target.SegmentID = Source.SegmentID        AND Target.Country = Source.Country        AND Target.Environment = Source.Environment        AND Target.YearColumn = Source.YearColumn        AND Target.ForecastYear = Source.ForecastYear        AND Target.Criterion = Source.Criterion    )WHEN NOT MATCHED BY TARGET AND Source.Forecast <> 0 AND Source.Forecast IS NOT NULL THEN    INSERT (SegmentID, Country, Environment, YearColumn, Forecast, ForecastYear, Criterion)    VALUES (Source.SegmentID, Source.Country, Source.Environment, Source.YearColumn, Source.Forecast, Source.ForecastYear, Source.Criterion)WHEN MATCHED AND (Source.Forecast = 0 OR Source.Forecast IS NULL) THEN    DELETEWHEN MATCHED AND Source.Forecast <> Target.Forecast THEN    UPDATE SET Target.Forecast = Source.Forecast;

成功:

SELECT    *INTO    TestTableFROM    TargetTableGOSET NUMERIC_ROUNDABORT OffGOMERGE    TestTable TargetUSING    (        SELECT            cast(forecast as DECIMAL(20, 7)) forecast          ,[SegmentID]          ,[Country]          ,[Environment]          ,[YearColumn]          ,[ForecastYear]          ,[Criterion]        FROM            SourceTable    ) Source    ON    (        Target.SegmentID = Source.SegmentID        AND Target.Country = Source.Country        AND Target.Environment = Source.Environment        AND Target.YearColumn = Source.YearColumn        AND Target.ForecastYear = Source.ForecastYear        AND Target.Criterion = Source.Criterion    )WHEN NOT MATCHED BY TARGET AND Source.Forecast <> 0 AND Source.Forecast IS NOT NULL THEN    INSERT (SegmentID, Country, Environment, YearColumn, Forecast, ForecastYear, Criterion)    VALUES (Source.SegmentID, Source.Country, Source.Environment, Source.YearColumn, Source.Forecast, Source.ForecastYear, Source.Criterion)WHEN MATCHED AND (Source.Forecast = 0 OR Source.Forecast IS NULL) THEN    DELETEWHEN MATCHED AND Source.Forecast <> Target.Forecast THEN    UPDATE SET Target.Forecast = Source.Forecast;

答案1

小编典典

您的代码似乎完全没有错误。此外,当您使用与原始表相同的结构和数据创建另一个表作为目标时,它可以正常工作的事实表明该错误不存在。最可能的原因是您在原始表上有一个触发器,该触发器正在执行失败的查询,这就是您所看到的错误。

ms-access 更新整数值导致算术溢出算术溢出错误将表达式转换为数据类型 int

ms-access 更新整数值导致算术溢出算术溢出错误将表达式转换为数据类型 int

如何解决ms-access 更新整数值导致算术溢出算术溢出错误将表达式转换为数据类型 int?

在 Access 中,我可以打开表格并使用任何整数更改 CRStatus 的值。 但是当使用这个查询时:

UPDATE disTINCTROW dbo_V_Rechn_Header SET dbo_V_Rechn_Header.CRStatus = 2
WHERE (((dbo_V_Rechn_Header.Re_Empfaenger)=105) AND ((dbo_V_Rechn_Header.CRStatus)<>2));

我收到了提到的错误。我也试过这个

UPDATE disTINCTROW dbo_V_Rechn_Header SET dbo_V_Rechn_Header.CRStatus = CInt(2)
WHERE (((dbo_V_Rechn_Header.Re_Empfaenger)=105) AND ((dbo_V_Rechn_Header.CRStatus)<>2));

但这有同样的错误。即使我使用这个查询:

SELECT disTINCTROW dbo_V_Rechn_Header.Re_Empfaenger,dbo_V_Rechn_Header.CRStatus
FROM dbo_V_Rechn_Header
WHERE (((dbo_V_Rechn_Header.Re_Empfaenger)=105));

我无法手动输入“2”。只有直接打开表格,我才能改变数值。

知道为什么会这样吗? 谢谢 最大

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

MsSqlServer错误

MsSqlServer错误

解决办法 vcD4KPHA+1NrK/b7dv+LW0LXju/e5pL7f0aHP7jwvcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20141014/201410140919373.png" alt="\"> 当你点击 选项会弹出 点击表设计

\

解决办法喎?http://www.2cto.com/kf/ware/vc/" target="_blank">vcD4KPHA+1NrK/b7dv+LW0LXju/e5pL7f0aHP7jwvcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20141014/201410140919373.png" alt="\">

当你点击 选项会弹出

\

点击表设计


sql server 除法高精度多位小数除法溢出错误

sql server 除法高精度多位小数除法溢出错误

select 
       convert(numeric(16,2),(
         round(convert(numeric(16,2),(replace([col1],'','',''''))),2)
         /
         case when (round(convert(numeric(16,2),(replace([col2],'','',''''))),2))
         =0 then 0.000001
         else (round(convert(numeric(16,2),(replace([col2],'','',''''))),2)) end
         ))
         from [tab1]


sql server存储引擎启动错误(SQL Server could not spawn FRunCM thread)

sql server存储引擎启动错误(SQL Server could not spawn FRunCM thread)

错误信息:

中文版:

  服务器无法在 ''any'' <ipv4> 1433 上侦听。错误: 0x277a。若要继续,请通知您的系统管理员。
  TDSSNIClient 初始化失败,出现错误 0x277a,状态代码 0xa。原因: 无法初始化 TCP/IP 侦听器。 无法加载或初始化请求的服务提供程序。
  TDSSNIClient 初始化失败,出现错误 0x277a,状态代码 0x1。原因: 初始化失败,出现基础结构错误。请检查以前的错误。 无法加载或初始化请求的服务提供程序。
  由于网络库中存在内部错误,所以无法启动网络库。要确定原因,请查看错误日志中紧位于此错误之前的那些错误。
  SQL Server 无法生成 FRunCM 线程。请查看 SQL Server 错误日志和 Windows 事件日志,获取有关可能发生的相关问题的信息。
  事件查看器的日志

英文版:

SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.

Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.

TDSSNIClient initialization failed with error 0x2741, status code 0x1. Reason: Initialization failed with an infrastructure error. Check for previous errors. The requested address is not valid in its context.

TDSSNIClient initialization failed with error 0x2741, status code 0xa. Reason: Unable to initialize the TCP/IP listener. The requested address is not valid in its context.

Server failed to listen on 192.168.245.82 <ipv4> 2433. Error: 0x2741. To proceed, notify your system administrator.

 

核心思路:主要是端口是不是被人占了

  cmd=> netstart -an   查看一下

解决办法:

  1.禁用VIA与 Named Pipes

    

 

 

   2.TCP/IP中直接选择全部侦听(因为里头有1433和2433)

    

 

   然后再重启服务试试,这个时候一般都是没有问题了

 

我们今天的关于MERGE的算术溢出错误数字到数字:SQL Server错误?的分享已经告一段落,感谢您的关注,如果您想了解更多关于ms-access 更新整数值导致算术溢出算术溢出错误将表达式转换为数据类型 int、MsSqlServer错误、sql server 除法高精度多位小数除法溢出错误、sql server存储引擎启动错误(SQL Server could not spawn FRunCM thread)的相关信息,请在本站查询。

本文标签: