如何将类型为varchar(10)的字段设置为自增?_MSSQL_编程问答 问题: 如何将类型为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

解决方案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

上一篇求可靠的存储过程解密方法或工具
下一篇win10安装sql server 2005出错,求指教
明星图片
相关文章
《 如何将类型为varchar(10)的字段设置为自增?》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)