假设我有下表:
ID Name Custom_Field
1 Alex 1_custom
2 Bob 2_somethingelse
.......
我可以在一个sql语句中执行插入吗?我找不到任何允许我在插入时使用我的ID的功能。
ID
为INT IDENTITY(1,1)
我正在寻找这样的东西:
insert into table
values('Alex', ID_VALUE + '_custom')
答案 0 :(得分:3)
如果您始终需要ID_custom
等字段值,则可以创建computed column:
CREATE TABLE SomeTable
(
[id] int identity,
[name] varchar(20),
CustomField AS CAST(id AS varchar(10)) + '_custom'
);
虽然您无法在其中插入值(并且您不必这样做)。所以你的插入语句如下所示:
INSERT INTO SomeTable
([name])
VALUES
('Alex'),
('Bob')
;
这是一个SQL小提琴:http://sqlfiddle.com/#!18/10cac/1
答案 1 :(得分:0)
你可以获得最后一个身份并增加1.像这样的东西
insert into table
values('Alex', cast((select max(ID_VALUE )+1 from table) as nvarchar(10)) + '_custom')
sql server中有SCOPE_IDENTITY()
函数,但只能在insert语句之后使用它。