起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 411|回复: 17

【搞定】所有的流程流转不了,提示如下**

[复制链接]
发表于 2007-4-3 09:11:10 | 显示全部楼层 |阅读模式
如题

1.jpg

104.23 KB, 下载次数: 131

回复

使用道具 举报

发表于 2007-4-3 09:26:40 | 显示全部楼层
楼主,看提示应该是数据库报的错误。

Transact-SQL 参考


SET ARITHABORT
在查询执行过程中发生溢出或被零除错误时终止查询。

语法
SET ARITHABORT { ON | OFF }

注释
如果 SET ARITHABORT 为 ON,则这些错误情况将导致查询或批处理终止。如果在事务内发生错误,则回滚事务。如果 SET ARITHABORT 为 OFF 并且发生了这些错误之一,则显示一条警告消息,并给算术运算的结果赋以空值。



说明  如果 SET ARITHABORT 和 SET ARITHIGNORE 都没有设置,则 Microsoft® SQL Server™ 将在执行查询后返回 NULL 和一条警告信息。


如果 SET ARITHABORT 为 OFF 并且在对表达式的求值过程中 INSERT、DELETE 或 UPDATE 语句遇到算术错误(溢出、被零除或域错误),SQL Server 将插入或更新 NULL 值。如果目标列不可为空,则插入或更新操作失败并且用户收到错误信息。

如果 SET ARITHABORT 或 SET ARITHIGNORE 为 OFF,并且 SET ANSI_WARNINGS 为 ON,则当遇到被零除或溢出错误时,SQL Server 仍返回错误信息。

SET ARITHABORT 的设置是在执行或运行时设置,而不是在分析时设置。

在计算列或索引视图上创建或操作索引时,SET ARITHABORT 必须为 ON。如果 SET ARITHABORT 为 OFF,计算列或索引视图上带索引的表上的 CREATE、UPDATE、INSERT 和 DELETE 语句将失败。有关计算列上的索引视图和索引所必需的 SET 选项设置的更多信息,请参见 SET 中的"使用 SET 语句时的注意事项"。

权限
SET ARITHABORT 权限默认授予所有用户。

示例
下例演示两种 SET ARITHABORT 设置下的被零除和溢出错误。

-- Create tables t1 and t2 and insert data values.
CREATE TABLE t1 (a tinyint, b tinyint)
CREATE TABLE t2 (a tinyint)
GO
INSERT INTO t1 VALUES (1, 0)
INSERT INTO t1 VALUES (255, 1)
GO

PRINT '*** SET ARITHABORT ON'
GO
-- SET ARITHABORT ON and testing.
SET ARITHABORT ON
GO

PRINT '*** Testing divide by zero during SELECT'
GO
SELECT a/b
FROM t1
GO
PRINT '*** Testing divide by zero during INSERT'
GO
INSERT INTO t2
SELECT a/b
FROM t1
GO

PRINT '*** Testing tinyint overflow'
GO
INSERT INTO t2
SELECT a+b
FROM t1
GO

PRINT '*** Resulting data - should be no data'
GO
SELECT *
FROM t2
GO

-- Truncate table t2.
TRUNCATE TABLE t2
GO

-- SET ARITHABORT OFF and testing.
PRINT '*** SET ARITHABORT OFF'
GO
SET ARITHABORT OFF
GO
-- This works properly.
PRINT '*** Testing divide by zero during SELECT'
GO
SELECT a/b
FROM t1
GO
-- This works as if SET ARITHABORT was ON.
PRINT '*** Testing divide by zero during INSERT'
GO
INSERT INTO t2
SELECT a/b
FROM t1
GO
PRINT '*** Testing tinyint overflow'
GO
INSERT INTO t2
SELECT a+b
FROM t1
GO

PRINT '*** Resulting data - should be 0 rows'
GO
SELECT *
FROM t2
GO
-- Drop tables t1 and t2.
DROP TABLE t1
DROP TABLE t2
GO


请参见

SET

SET ARITHIGNORE

©1988-2000 Microsoft Corporation。保留所有权利。
回复 支持 反对

使用道具 举报

发表于 2007-4-3 09:27:12 | 显示全部楼层
当在计算列或索引视图上创建和操作索引时,必须将 SET 选项 ARITHABORT、CONCAT_NULL_YIELDS_NULL、QUOTED_IDENTIFIER、ANSI_NULLS、ANSI_PADDING 和 ANSI_WARNINGS 设置为 ON。必须将选项 NUMERIC_ROUNDABORT 设置为 OFF。
如果这些选项中的任何一个没有设置为所要求的值,则在索引视图上或在计算列带索引的表上进行的 INSERT、UPDATE 和 DELETE 操作将失败。SQL Server 将发出一个错误,列出所有设置不正确的选项。同时,SQL Server 将在这些表或索引视图上处理 SELECT 语句,仿佛计算列或视图上不存在索引一样。
回复 支持 反对

使用道具 举报

发表于 2007-4-3 09:28:28 | 显示全部楼层
1、你编辑完数据后,先保存,再流转会有错误吗?

2、直接在数据库服务器上设置 SET 选项 ARITHABORT 为 ON,看能否解决问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 09:43:32 | 显示全部楼层
不行,我设置了,但还是报错
回复 支持 反对

使用道具 举报

发表于 2007-4-3 10:21:44 | 显示全部楼层
请使用下面的语句检查当前数据库的状态
SP_DBOPTION 'X3_2611', 'ArithAbort'
回复 支持 反对

使用道具 举报

发表于 2007-4-3 10:31:31 | 显示全部楼层
使用下面的语句设置开关:
ALTER DATABASE x3_2401
SET ARITHABORT ON
回复 支持 反对

使用道具 举报

发表于 2007-4-3 10:32:17 | 显示全部楼层
sp_dboption 'x3_2401', 'arithabort', 'on'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 11:08:03 | 显示全部楼层
通过设置开关可以,谢谢,太感谢了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 16:23:30 | 显示全部楼层

点保存按钮,频繁死机

点保存按钮,频繁死机
见附件

server.rar

130.84 KB, 下载次数: 54

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-18 20:04 , Processed in 0.045388 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表