我有一个像这样的默认表
+--+----------+--------+------+
|Id|class_name|class_id|medals|
+--+----------+--------+------+
|1 |7IPA1 |7 |3 |
|2 |7IPA2 |7 |2 |
|3 |7IPA3 |7 |5 |
|4 |8IPA1 |8 |1 |
|5 |8IPA2 |8 |7 |
|6 |8IPA3 |8 |3 |
+--+----------+--------+------+
它将由
UPDATE MYTABLE
SET CLASS_ID = SUBSTRING(CLASS_NAME,1,4)
+--+----------+--------+------+
|Id|class_name|class_id|medals|
+--+----------+--------+------+
|1 |7IPA1 |7IPA |3 |
|2 |7IPA2 |7IPA |2 |
|3 |7IPA3 |7IPA |5 |
|4 |8IPA1 |8IPA |1 |
|5 |8IPA2 |8IPA |7 |
|6 |8IPA3 |8IPA |3 |
+--+----------+--------+------+
如何保存此查询?这样,当我插入新数据时,此查询将自动执行。
我使用sql server management studio 2012
发布于 2016-09-05 01:49:28
也许你可以像下面这样使用跳跳虎
create trigger trigger_class_id on MYTABLE
After
insert
as
UPDATE
MYTABLE
SET
CLASS_ID = SUBSTRING(CLASS_NAME, 1, 4) WHERE ID=inserted.ID
发布于 2016-09-05 00:32:36
你不想这样做作为一个更新。相反,您希望有一个计算列。
alter table mytable add class_id as (left(class_name, 4));
当然,在执行此命令之前,您需要确保列名(class_id
)尚未在表中。
发布于 2016-09-05 11:10:00
您可以使用tigger,也可以将此查询与insert查询一起添加。那么你的查询就会是。
Insert into MYTABLE (class_name,class_id,medals) values('','','')
UPDATE MYTABLE
SET CLASS_ID = SUBSTRING(CLASS_NAME,1,4)
https://stackoverflow.com/questions/39322619
复制相似问题