(八大方法、逐层深入,有你一定没见过的)使用INSERT语句向表中插入数据

(八大方法、逐层深入,有你一定没见过的)

使用INSERT语句向表中插入数据(MSSQLSERVER版)

做开发的同仁对于向数据库中插入数据可谓是太普通不过了,也没什么说的,一般都是采用常用的INSERT INTO [(字段列表)] VALUES(字段值列表),这样的方式进行操作。今天,我要给大家介绍的是其他一些非常规的方式,一定会让你耳目一新,眼前一亮。

进入今天的主题,以了便于操作,我们首先建立一个实例数据表:

USEtempdb;

GO

CREATETABLEFruit

(

IdINTNOTNULL,

NameVARCHAR(100)NOTNULL,

ColorVARCHAR(100)NULL,

QuantityINTDEFAULT1

);

方式一:传统方式

语法:INSERT(column_list)VALUES(value_list);

我们插入一条数据到数据表中。

INSERTINTOFruit

(Id,Name,Color,Quantity)

VALUES(1,'Banana','Yellow',1);

这种方式是我们常用的一种插入数据的方式,给出所有的列名集合与值集合。

方式二:省略列集合

INSERTINTOFruit

VALUES(2,'Grapes','Red',15);

这种方式我们省略了列名集合,这种方式值集合必须与数据表定义时列的顺序相一至,必须赋的值不能省略

方式三:插入部分字段

INSERTINTOFruit

(Id,Name)

VALUES(3,'Apples');

这种方式,我们不必给出所有字段列表,只插入我们需要的字段即可。

以上三种方式是我们在实际使用中最为常见的插入数据的方式,下面给出的也许会让你眼前一亮。

方式四:一条插入语句插入多条数据

INSERTINTOFruit

(Id,Name,Color,Quantity)

VALUES(4,'Apples','Red',10),

(5,'Peaches','Green',7),

(6,'Pineapples','Yellow',5);

在这儿,我用一条插入语句同时插入了三条不同的数据到Fruit数据表中。

方式五:使用SELECT语句同时插入多条数据。

INSERTINTOFruit

(Id,

Name,

Color,

Quantity

)

SELECT 7+(6-Id),

Name,

'White',

Quantity

FROMFruit

WHEREId>3

ORDERBYIdDESC;

在方式五中,我通过选择Fruit表中 Id 大于 3 记录插入到Fruit表中。这是从水果表中现有的值派生出来的。

方式六:使用存储过程插入数据。

首先、我们建立一个存储过程如下:

CREATEPROCHybridFruit

AS

SELECTb.Id+9,

a.Name+b.name

FROMFruita

INNERJOINFruitbONa.Id=9-b.Id;

GO

现在我们使用上面建立的存储过程进行数据的插入,方法如下:

INSERTINTOFruit

(Id,Name)

EXECUTEHybridFruit;

方式七:使用OUTPUT子句输出插入的数据以供外部使用。

INSERTINTOFruit

(Id,Name)

OUTPUTINSERTED.*

VALUES(18,'PieCherries');

在这儿,我们通过使用OUTPU子句输出了同步插入的数据。

方式八:通过OUTPUT子句把结果返回给客户端。

为了方便演示,我先把Fruit表的Id列设为自动增长列。

ALTERTABLEFruit

DROPCOLUMNId;

ALTERTABLEFruit

ADDIdINTIDENTITY;

现在我们来通过OUTPUT子句插入值并把结果返回给客户端。

DECLARE@INSERTEDASTABLE(IdINT,NameVARCHAR(100));

--使用OUTPUT插入

INSERTINTOFruit

(Name,Color)

OUTPUTINSERTED.Id,INSERTED.Name

INTO@INSERTED

VALUES('Bing Cherries','Purple'),

('Oranges','Orange');

--显示插入的值

SELECT*

FROM@INSERTED;

以上就是八种方式,也许对你有用,仅作参考使用,谢谢~!

你可能感兴趣的:(insert)