数据库在插入字段时长度超过voucher的限制,可以把报的错用tryCatch包裹起来继续插入吗?

Tian_hz 2018-02-13 02:13:55
如题,我在插入错误日志的时候错误信息可能会出现长度超过限制,我想能不能用try'catch把这个错包起来,让程序跳过这个错误继续插入错误信息?
...全文
2072 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tian_hz 2018-03-01
  • 打赏
  • 举报
回复
我用tryCatch包起来了,直接跳过往下执行,没办法改数据库字段的长度,直接包起来跳过了
道玄希言 2018-02-14
  • 打赏
  • 举报
回复
既然是做错误日志的记录用, 那你直接用字符串截取嘛,取指定长度的字符串赋值进去就好.
吉普赛的歌 2018-02-13
  • 打赏
  • 举报
回复
--定义为 nvarchar(max)就好, max 指示最大存储大小为 2^31-1 字节。基本不可能超过长度限制
--你不可能一条记录 2GB 吧?
CREATE TABLE t(
	id INT IDENTITY(1,1) PRIMARY KEY,
	errMsg NVARCHAR(MAX)	
)
唐诗三百首 2018-02-13
  • 打赏
  • 举报
回复
应在前端程序中做录入长度限制,避免提交无效数据. 而非在数据库端处理.
zjcxc 2018-02-13
  • 打赏
  • 举报
回复
示例
create table #t( a varchar(1) );
begin try;
	insert #t values('aa');
end try begin catch end catch;
insert #t values('a');
select * from #t
drop table #t
shoppo0505 2018-02-13
  • 打赏
  • 举报
回复
可以的。 如果知道具体的数据库报错类型,catch里面在具体判断下就可以了。 同时可以记录下具体数据行信息。
财务软件数据库设计 财务管理软件数据库设计说明书 版本1.0 日期:2009-11-27 1 实体,对象命名规范 5 1.1 表名命名规范 5 1.2 表字段命名规范 5 1.3 序列命名规范 5 1.4 视图命名规范 5 1.5 触发器命名规范 5 1.6 存储过程命名规范 5 2 实体关系 5 2.1 基础信息模块 5 科目信息 5 账户类型信息 5 科目类别 5 帐套信息 6 会计期间信息 6 用户信息 6 权限信息 6 凭证类别 7 2.2 凭证管理模块 7 凭证信息 7 结算方式信息 7 2.3 账簿管理模块 8 账簿基本信息 8 三栏式账簿信息 8 多栏式账簿信息 8 数量三栏式账簿信息 8 2.4 财产清查模块 9 现金盘点信息 9 实物盘点信息 9 2.5 出纳管理模块 9 日记账信息 9 银行对账单 10 企业银行帐 10 2.6 系统实体关系图 11 3 数据字典 12 3.1 基础信息模块 12 3.1.1 表 12 (帐套表)basInfo_accountOver 12 (会计期间表)basInfo_period 12 (科目表)basInfo_subject 12 财务软件数据库设计全文共14页,当前为第1页。(科目类别表)basInfo_subjectType 13 财务软件数据库设计全文共14页,当前为第1页。 (账簿表)basInfo_accountBook 13 (账簿类别表)basInfo_accountBookType 13 (用户表)basInfo_user 14 (权限表)basInfo_right 14 (用户权限关联表)basInfo_userRightRelation 14 (凭证类别表)basInfo_voucherType 14 3.1.2 视图 15 3.1.3 存储过程 16 3.1.4 触发器 16 3.2 凭证管理模块 16 3.2.1 表 16 (凭证表)vouMng_voucher 16 (分录表)vouMng_entry 17 (结算方式表)vouMng_closeAccount 17 3.2.2 视图 17 3.2.3 存储过程 18 3.2.4 触发器 18 3.3 账簿管理模块 18 3.3.1 表 18 (多栏账关系表)accBookMng_ multicolumnRelation 18 3.3.2 视图 18 3.3.3 存储过程 19 3.3.4 触发器 19 3.4 财产清查模块 19 3.4.1 表 19 (现金盘点)chkProp_checkCash 19 (实物盘点) chkProp_checkArticle 19 3.4.2 视图 20 3.4.3 存储过程 20 3.4.4 触发器 20 3.5 出纳管理模块 20 3.5.1 表 20 (日记账)cashierMng_dayBook 20 (日记账记录) cashierMng_record 21 (银行对账单)cashierMng_bankStatement 21 (企业银行帐)cashierMng_enterBankAccount 22 3.5.2 视图 22 3.5.3 存储过程 23 3.5.4 触发器 23 财务软件数据库设计全文共14页,当前为第2页。 1 实体,对象命名规范 财务软件数据库设计全文共14页,当前为第2页。 表名命名规范 模块名_+表名 表字段命名规范 字段名 序列命名规范 字段名_+id 视图命名规范 Vw_+视图名 触发器命名规范 Tig_+触发器名 存储过程命名规范 Proc_+存储过程名 实体关系 基础信息模块 科目信息 属性 备注 科目代码 1001、100101等分级模式 科目名称 助忆码 科目类别 科目对应的类别 科目账户类型 科目设置的账户类型 余额方向 借、贷 数量核算 是、否 数量单位 台、吨等 结算 是、否 账户类型信息 属性 备注 账户名称 三栏、多栏、数量式等 账户名称值 SL、DL、SL等字母字符串 科目类别 属性 备注 科目类别 资产,负债,权益,成本,损益类等 科目类别值 ZC、FZ、QY等字母字符串 财务软件数据库设计全文共14页,当前为第3页。帐套信息 财务软件数据库设计全文共14页,当前为第3页。 属性 备注 会计期间 会计科目 记账凭证 账簿 帐套启用日期 创建帐套日期 帐套名称 帐套当前期间 引用会计期间信息 会计期间信息 属性 备注 年度 如2009等年度数字 期间 1~12期数字 起始日期 当前期间的开始日期 结束日期 当前期间的结束日期 用户信息 属性 备注 姓名 用户真实姓名 工号 登录号 口令 登录口令 职位 公司的职位 权限 操作权限 联系电话 Email 权限信息 属性 备注 权限节点名称 父权限 权限代

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧