sql2000插入数据自动运算

sql2000插入数据自动运算,第1张

Create procedure insertable

@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后面的列的顺序 必须和目标表中的列的定义顺序完全一致 才能完成正确的数据插入,这是一个很容易被忽略的地方,值得注意。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6793204.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存