如何为一个字段设置默认值=主键ID

时间:2022-09-06 15:07:32
如何为一个字段设置默认值=主键ID
如表:
id
name
pass
id2

如何让插入一条数据时,id2=id,sql中有这个函数吗

11 个解决方案

#1


用觸發器實現?
為null時,更新為主鍵

#2


create trigger IN_T on T
after insert
as
update T
set ID2=i.ID
from 
inserted i on t.ID=i.ID and t.ID2 is null

#3


可以直接在設計資料表時,在計算資料行規格中設置公式.

#4


引用 2 楼 roy_88 的回复:
create trigger IN_T on T 
after insert 
as 
update T 
set ID2=i.ID 
from 
inserted i on t.ID=i.ID and t.ID2 is null

#5



--参考, 不知对不对
create table T
(
[ID] int identity,
[Name] nvarchar(10),
[ID2] as  @@identity
)

insert T([Name])
values('A')
insert T([Name])
values('B')

select * from T

#6


默认值不允许是字段名称吧。

#7


触发器是好的选择,但不知是不是加重了数据库的负担?

#8


可用计算列
create table #tb
(
id int identity(1,1),
tname varchar(30),
id2 as id
)
insert into #tb select 'test'
select * from #tb

#9


触发器是好的选择,但不知是不是加重了数据库的负担?
------------------------------------------------
多了触发器,肯定是要花费一些cpu时间的,就是插入时。

#10


用触发器...........

#11


if object_id('test')is not null
   drop table test
go
create table test (ID int identity(1,1),Name varchar(10),Num as ID)
insert test(Name) values('Stone')
insert test(name) values('Happy')
go 
select * from test

所影响的行数为 1 行)


(所影响的行数为 1 行)

ID Name Num
1 Stone 1
2 Happy 2

(所影响的行数为 2 行)

#1


用觸發器實現?
為null時,更新為主鍵

#2


create trigger IN_T on T
after insert
as
update T
set ID2=i.ID
from 
inserted i on t.ID=i.ID and t.ID2 is null

#3


可以直接在設計資料表時,在計算資料行規格中設置公式.

#4


引用 2 楼 roy_88 的回复:
create trigger IN_T on T 
after insert 
as 
update T 
set ID2=i.ID 
from 
inserted i on t.ID=i.ID and t.ID2 is null

#5



--参考, 不知对不对
create table T
(
[ID] int identity,
[Name] nvarchar(10),
[ID2] as  @@identity
)

insert T([Name])
values('A')
insert T([Name])
values('B')

select * from T

#6


默认值不允许是字段名称吧。

#7


触发器是好的选择,但不知是不是加重了数据库的负担?

#8


可用计算列
create table #tb
(
id int identity(1,1),
tname varchar(30),
id2 as id
)
insert into #tb select 'test'
select * from #tb

#9


触发器是好的选择,但不知是不是加重了数据库的负担?
------------------------------------------------
多了触发器,肯定是要花费一些cpu时间的,就是插入时。

#10


用触发器...........

#11


if object_id('test')is not null
   drop table test
go
create table test (ID int identity(1,1),Name varchar(10),Num as ID)
insert test(Name) values('Stone')
insert test(name) values('Happy')
go 
select * from test

所影响的行数为 1 行)


(所影响的行数为 1 行)

ID Name Num
1 Stone 1
2 Happy 2

(所影响的行数为 2 行)