关于网友提出的“ 如何将类型为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(10)的字段设置为自增?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4531926.html