您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
-->
当前位置:首页 >> 编程问答 >> MSSQL >> 如何将类型为varchar(10)的字段设置为自增?

如何将类型为varchar(10)的字段设置为自增?

来源:网络整理     时间:2018/1/22 2:17:43     关键词:

关于网友提出的“ 如何将类型为varchar(10)的字段设置为自增?”问题疑问,本网通过在网上对“ 如何将类型为varchar(10)的字段设置为自增?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 如何将类型为varchar(10)的字段设置为自增?

解决方案1:

把上面那个触发器的语句改了一下:
create trigger tg_test 
on test
instead of insert
as
declare @content nvarchar(10)
select @c /> insert into test(id,content)
select  'BH'+right('00000000'+cast(cast(ISNULL(max(right(id,8)),'0') as int)+1 as nvarchar),8),@content from test 
go

解决方案2:

按你说的情况,好象只能用触发器来实现了。
下边的代码是一个例子,你主要是看看思路,执行以后可以见到效果
例子里的表test001中的id列就如你说的是nvarchar类型的
--创建表
create table test001
(
id nvarchar(10),
content varchar(10)
)
go
--创建触发器
create trigger tg_test001
on test001
instead of insert
as
declare @content nvarchar(10)
select @c /> insert into test001(id,content)
select cast(isnull(max(id),'0') as int)+1,@content
from test001
 
go
--向表中插入数据
insert into test001 (content) select 'a'
insert into test001 (content) select 'b'
go
--选择察看插入效果
select * from test001
go

  • NLS_LENGTH_SEMANTICS参数对VARCHAR2类型的字段的影响

解决方案3:

标识列的数据类型必须是 int、bigint、smallint、tinyint 或 decimal,或者是小数位数为 0 的 numeric 数据类型,并且约束为不可为 Null。


use tempdb
go
if object_id('test') is not null
drop table test
create table test(num int identity(1,1),val as 'A'+right('000000000'+ltrim(num),9))
go
insert into test
default values
go 10
select * from test

  • 关于数据库Varchar字段类型长度设计问题


以上介绍了“ 如何将类型为varchar(10)的字段设置为自增?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4531926.html

相关图片

相关文章