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

Tian_hz 2018-02-13 02:13:55
如题,我在插入错误日志的时候错误信息可能会出现长度超过限制,我想能不能用try'catch把这个错包起来,让程序跳过这个错误继续插入错误信息?
...全文
2078 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里面在具体判断下就可以了。 同时可以记录下具体数据行信息。

22,207

社区成员

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

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