如何在插入的时候自动截断超长内容?

haurau 2006-08-01 09:12:44
不使用存储过程,执行insert语句,如果内容超长,自动截断。
...全文
406 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gahade 2006-08-01
  • 打赏
  • 举报
回复
--查询表栏位的类型和长度
select c.name '表名',a.name '栏位名',b.name '类型',a.length '长度' from syscolumns a
inner join systypes b on a.xtype = b.xtype
left join sysobjects c on a.id = c.id and c.xtype = 'U'
where c.name = 'tablename'

再根据"长度"用left函数来截取栏的值!
yanguangyun 2006-08-01
  • 打赏
  • 举报
回复
create table tb_1
(
id int,
ch char(10)
)

go

declare @is_str char(20)
declare @is_len int
set @is_str ='12345467890123456789'

select @is_len=length from syscolumns where object_id('tb_1') =id and name ='ch'

insert tb_1(id,ch)
select 2,left(@is_str,@is_len)

select * from tb_1

如用len或datalength取长度时,如表为空行,其取值将为NULL
wcfboy1 2006-08-01
  • 打赏
  • 举报
回复
用 len 获取列长度,left取截断数据
haurau 2006-08-01
  • 打赏
  • 举报
回复
现在知道表名,知道列名。如果需要截断的话需要知道列长度,请问怎么处理?
gahade 2006-08-01
  • 打赏
  • 举报
回复
在insert,update触发器中,用left或substring可以截断指定长度外的字符
abc3000 2006-08-01
  • 打赏
  • 举报
回复
insert语句很长? 不会截断啊
WangZWang 2006-08-01
  • 打赏
  • 举报
回复
--什么自动截断,可以定义类型的长度来自动截断,LZ可以举例说明..
freeliu 2006-08-01
  • 打赏
  • 举报
回复
插入的时候,使用left处理一下。
zclxyh 2006-08-01
  • 打赏
  • 举报
回复
好像不能自动截断。
OracleRoob 2006-08-01
  • 打赏
  • 举报
回复
nvarcar存储的是UNIOCDE字符,每个字符占2个字节。

varchar每个英文字符占1个字节。
haurau 2006-08-01
  • 打赏
  • 举报
回复
刚用楼上两位的方法,请问为什么nvarchar查出来的长度是数据库中定义的两倍呢?
影视字幕制作Time_machine_0.37 1. 影视字幕制作工具支持SRT,ASS,格式字幕,(完成) 2. 支持23113文档导入进行制作时间轴,允许以空格作为时间轴拆分点标记,也允许把每行做为一个时间轴(完成) 3. 支持输出多版本字幕(SRT,ASS,简体繁体,以及中英) 支持打包为一个RAR文件,输出的时候可设置ASS参数,允许平均分割为多段字幕输出 4. 支持AVI,RMVB,MKV,MPG,MPEG,等多种常用格式视频! 前提是系统装有这种视频的解码器,如果没有请自己安装 5. 支持新建空白时间,可以平均插入时间轴的时长,也可以给时间轴插入序号内容, 6. 支持一边看视频一边制作时间,按F8截取开始时间点,F9 截取时间轴结束点 7. 允许设定反应时间,也就是在制作时间轴或者对着视频调整时间的时候让软件延后或者提前你设定的时间值,此功能主要是因为人的反应时间没这么快,当你按下键盘的时候可能播放器已经播了0.3秒这样,所以需要软件自动加上一个参数。 8. 可以追加字幕,当你把多CD字幕合并为一个字幕的时候这个功能比较有用,当然时间你得重新对着视频调整。 或者多人翻译的字幕合并起来。 2010.01.08 优化智能拆分长句功能 优化首字母大写功能 修复:会引起误删前面句子的bug 2010.01.19 优化cc字幕本身大小写正常情况下的人名和首字母问题 2010.01.21 优化升级模式,并且软件主窗口会显示当前版本 2009.11.14 1.完善了自动生成namelist的功能。用户只需要点“工具”菜单上的“生成英文名列表”,软件自动会枚举所有英文名,等用户修改好相应的中文名,保存namelist文件后。再点击“工具”菜单上的“执行英文名替换”,字幕则自动会替换成中文名。(如果用户要生成英文名版本字幕,则只需要保持软件自动生成的namelist再执行上述步骤,软件会帮助把不规则的大小写替换成规则的,比如barack obama替换成Barack Obama。 2.完善了i自动替换成大写的功能,包含.i i-i-i i? ?i ,并避免了一些...之后英文字母大写的误转换。 3.修复了不能识别某些CC原始字幕的bug。 4.修复了误把所有:都当成一名剧中角色发言的标志,比如: YOU HAVE TO MEET AT THE DOCKS AT 8:00 A.M. 原版本会截断成00 A.M. 2009.11.18新增功能: 每一句翻译的字幕,设置2个等级,标1级的,是自己很有把握的(默认都是1级),标0级的是有疑问的。 这样看完片子后,自己可以点字幕列表框上的“准确”排序,把那些不太准的排在前面,自己再琢磨一下,方便修改。 其次,把字幕交给校对和总监后,校对也依然可以根据级别来帮助润色和修改,如果依然不确定,可以继续保持标记0给精较来确定。 每按一下,标记0和1会切换,大家在用的时候可以自己在“设置”——“软件设置”——“键盘”——类别里面选“字幕”,然后找到“设此行为待定行”菜单,设置一个熟悉的快捷键。我是设置成了F7,比较方便,因为我经常有很多句子拿不稳^_^ 2009.11.20 修复翻译确定度的设定导致加载字幕出错的bug 新增允许多条字幕同时设置确定度功能 消除单个字母作为英文人名被列举出的bug 允许在字幕列表框按ctrl+c复制一行字幕内容,方便粘贴到其他窗口 增加智能拆分超长轴功能,根据标点符号来划分成两句。 2009.11.22 修复设置ass格式时英文结尾特效无法输出的bug 增加两个时光机器窗口同时打开时,互相拷贝,如果源窗口复制100行,而目的窗口也同时选中100行的话,则只复制字幕内容,而不复制时间轴。 2009.11.25 恢复检查出错窗口中查找中文字幕行上有英文字母的功能 将某行翻译准确度设置为待定行,则此行的序号背景颜色会变成醒目红色,提醒用户注意 修正替换英文名的一bug,并自动过滤如hank hank的重复英文名称 修复自定义拆分时,替换前缀-,误删回车符的bug 2009.11.26 修正英文名是-stancy会把-包含进去或者没识别出此为英文名的bug 2009.11.27 增加“检查更新”功能,可以一键获得最新版本 2009.11.29 恢复统计行数功能,把标记为待定行的功能统一到“编辑”——“标记”菜单上 保存字幕时会自动以时间排序的方式来保存。 修正“检查更新”功能遇到UNICODE头会累加的bug 2009.12.1 追加字幕允许同时选择多个字幕文件,而不用一个一个文件的追加 2009.12.29 在视频同步状态,按ctrl+F2快捷键给当前自动同步行做标记,而不是鼠标单击的那一行 -name之bug修正 2010.01.08 优化智能拆分长句功能 优化首字母大写功能 修复:会引起误删前面句子的bug 2010.01.19 优化cc字幕本身大小写正常情况下的人名和首字母问题 2010.01.21 优化升级模式,并且软件主窗口会显示当前版本 ----------------------------------------------------------------------- 字幕编辑SrtEdit_5.2 SrtEdit是一款专业字幕编辑器,可以用来实现对Srt和Ssa、Ass字幕文件的编辑制作、分割、合并及时间校正等。

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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