美文网首页
sqlserver 主键默认值

sqlserver 主键默认值

作者: 2134e6d4f39b | 来源:发表于2017-09-06 16:38 被阅读84次

建立函数

     Create function  CreateProduct_ID()   
     Returns   Varchar(16)   
     As   
    Begin   
        Declare   @S   Varchar(100) 
        declare @id varchar(20)
        declare @date varchar(8)
        select @date=convert(varchar,getdate(),112)
        declare @count int
        select @count=count(*) from test where substring(id,1,8)=@date
    if @count=0
       begin
     
        select @S = @date+'0001' 
        
       end
    else 
       begin

        select @id=cast(cast(substring(max(id),9,4) as int)+1 as varchar) from test where substring(id,1,8)=@date
        select @S = @date+right('000'+cast(cast(@id as int) as varchar),4) 
       
    
       end
    Return @S
End   
Go

调用方法

 CREATE TABLE [dbo].[test](
        [id] [varchar](20) NOT NULL  Default  dbo.CreateProduct_ID(),
        [name] [varchar](10) NULL
) ON [PRIMARY]

设置默认值改进版

  Create function  CreateProduct_ID2()   
     Returns   Varchar(30)   
     As   
    Begin   
        Declare   @S   Varchar(100) 
        declare @id varchar(20)
        
        set @id = (CONVERT([bigint],replace(replace(replace(replace(CONVERT([nvarchar](100),CONVERT([nvarchar](100),getdate(),(121)),0),':',''),'-',''),' ',''),'.',''),0)) 
    

        
        select @S = 'HJ'+ @id
       
    Return @S
     
End   
Go

删除函数

Drop function CreateProduct_ID

主键自增

1.新建一数据表,里面有字段id,将id设为为主键

 create table tb(id int,constraint pkid primary key (id))
 create table tb(id int primary key )

2.新建一数据表,里面有字段id,将id设为主键且自动编号

 create table tb(id int identity(1,1),constraint pkid primary key (id))
 create table tb(id int identity(1,1) primary key )

3.已经建好一数据表,里面有字段id,将id设为主键

alter table tb alter column id int not null 
alter table tb add constraint pkid primary key (id)

4.删除主键

Declare @Pk varChar(100);
Select @Pk=Name from sysobjects where      Parent_Obj=OBJECT_ID('tb') and xtype='PK';
if @Pk is not null
exec('Alter table tb Drop '+ @Pk)

相关文章

网友评论

      本文标题:sqlserver 主键默认值

      本文链接:https://www.haomeiwen.com/subject/rrjyattx.html