如表:
id
name
pass
id2
如何让插入一条数据时,id2=id,sql中有这个函数吗
11 个解决方案
#1
用觸發器實現?
為null時,更新為主鍵
為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
after insert
as
update T
set ID2=i.ID
from
inserted i on t.ID=i.ID and t.ID2 is null
#3
可以直接在設計資料表時,在計算資料行規格中設置公式.
#4
#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
create table #tb
(
id int identity(1,1),
tname varchar(30),
id2 as id
)
insert into #tb select 'test'
select * from #tb
#9
触发器是好的选择,但不知是不是加重了数据库的负担?
------------------------------------------------
多了触发器,肯定是要花费一些cpu时间的,就是插入时。
------------------------------------------------
多了触发器,肯定是要花费一些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 行)
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時,更新為主鍵
為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
after insert
as
update T
set ID2=i.ID
from
inserted i on t.ID=i.ID and t.ID2 is null
#3
可以直接在設計資料表時,在計算資料行規格中設置公式.
#4
#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
create table #tb
(
id int identity(1,1),
tname varchar(30),
id2 as id
)
insert into #tb select 'test'
select * from #tb
#9
触发器是好的选择,但不知是不是加重了数据库的负担?
------------------------------------------------
多了触发器,肯定是要花费一些cpu时间的,就是插入时。
------------------------------------------------
多了触发器,肯定是要花费一些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 行)
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 行)