------解决方案-------------------- 把NO设置为计算列
alter table student add NO as ID ------解决方案-------------------- 插入后再更新, s ------解决方案-------------------- 既然NO和ID一样,调用时直接用ID就可以了。
何必多一个字段。 ------解决方案-------------------- 是啊,感觉多此一举啊 ------解决方案--------------------
CREATE TABLE temp(id int IDENTITY, num int,NAME VARCHAR(10))
go
--方法1,写个触发器
CREATE TRIGGER tr_test ON temp
AFTER INSERT
AS
begin
UPDATE A
SET A.num = A.id
FROM temp A
INNER JOIN INSERTED I
ON A.id = I.id
END
--test
INSERT temp (name) SELECT 'name1' UNION ALL SELECT 'name2'
/*
id num NAME
1 1 name1
2 2 name2
*/
--方法2,output into 方法
DECLARE @temp table (id int)
INSERT temp (name)
OUTPUT INSERTED.id
INTO @temp(id)
SELECT 'name3' UNION ALL SELECT 'name4'
UPDATE A
SET A.num = A.id
FROM temp A
INNER JOIN @temp I
ON A.id = I.id
------解决方案-------------------- 引用:
把NO设置为计算列
alter table student add NO as ID
各表中的列名必须唯一。在表 'Student' 中多次指定了列名 'NO'。什么意思?
直接把之前的删除,然后重新把这个NO列加上就可以了 ------解决方案-------------------- 方案1:insert的时候用insert into student select id,name ,id as no from 数据集,如果是insert xxx values()的话直接写死。
方案2:用计算列,这样你直接只需要insert前两列。 ------解决方案--------------------