@s int ,@l int
as
insert into 表
varluse (@s,@l,(@s+@l)/2,(@s+@l)/2/@s)
这上面的 存储过程可以帮上你,需要修改表名,并且插入的表要有4列,我使用的两个变量都是整数,你可以根据需要修改两个变量的数据类型
调用是输入EXEC insertable 第一个值,第二个值
--------------------------------------------------
上面的方法是表已经存在不适合修改表的情况
还有一种方法是虚拟列,需要在建表或修改表的时候才能用.
格式是这样的
create table tablename
(a1 int ,
a2 int ,
a3 as (a1+a2)/2 ,
a4 as (a1+a2)/2/a1 )
这样的表就会在使用insert into 的时候只用输入a1,a2值,a3,a4的值会根据公式自动算的,当然你使用update a1 ,a2其中 一个值的话,a3,a4也会跟着变的.
如果是用sql 语句插入数据的话如下:insert into table(a,b,c) value(1,2,3)
--若b需要使用默认值,如下即可:
insert into table(a,c) value(1,3)
insert into table value(1,2,3)
insert into table select a,b,c from table1
insert into a select * from b
从根本的上说,都是insert用法。没有利避,只看需要。
你仔细分析一下,就会发现,还是标准的insert
insert into 表名 [表列]value[对应值]
要是变化就在前面的表列和对应值上,怎么用表列,可省略,可以动态的取得。
对应值的获取方法就更多了,可以动态的输入,比如一些存储过程。还可以从别的表中取得,也可以固定时,还可以用一些函数,等等
我们在插入数据到数据库中的时候,常用的语句如下:INSERT INTO table1(id, name, address) VALUES(1, ygl, 'beijing')——适用于T-sql和PL/SQL
SELECT id, name, address INTO table2 FROM table1——自动创建table2,T-sql用法
INSERT INTO table2(id, name, address) SELECT id, name, address FROM table1
这里简单说一下第三句,由于可以指定插入到talbe2中的列,以及可以通过相对较复杂的查询语句进行数据源获取,可能使用起来会更加的灵活一些,但我们也必须注意,我们在指定目标表的列时,一定要将所有非空列都填上,否则将无法进行数据插入,还有一点比较容易出错的地方就是,当我们写成如下简写格式:
INSERT INTO table2 SELECT id, name, address FROM table1
此时,我们如果略掉了目标表的列的话,则默认会对目标表的全部列进行数据插入,且SELECT后面的列的顺序 必须和目标表中的列的定义顺序完全一致 才能完成正确的数据插入,这是一个很容易被忽略的地方,值得注意。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)