溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

(八大方法、逐層深入,有你一定沒(méi)見過(guò)的)使用INSERT語(yǔ)句向表中插入數(shù)據(jù)

發(fā)布時(shí)間:2020-05-29 04:14:23 來(lái)源:網(wǎng)絡(luò) 閱讀:463 作者:yonghu86 欄目:編程語(yǔ)言

(八大方法、逐層深入,有你一定沒(méi)見過(guò)的)

使用INSERT語(yǔ)句向表中插入數(shù)據(jù)(MSSQLSERVER版)

 

         做開發(fā)的同仁對(duì)于向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)可謂是太普通不過(guò)了,也沒(méi)什么說(shuō)的,一般都是采用常用的INSERT INTO [(字段列表)] VALUES(字段值列表),這樣的方式進(jìn)行操作。今天,我要給大家介紹的是其他一些非常規(guī)的方式,一定會(huì)讓你耳目一新,眼前一亮。

         進(jìn)入今天的主題,以了便于操作,我們首先建立一個(gè)實(shí)例數(shù)據(jù)表:

USE tempdb ;

GO

CREATE TABLE Fruit

   (

      Id INT NOT NULL ,

      Name VARCHAR(100) NOT NULL ,

      Color VARCHAR(100) NULL ,

      Quantity INT DEFAULT 1

) ;

 

方式一:傳統(tǒng)方式

 

語(yǔ)法:INSERT (column_list) VALUES (value_list);

 

我們插入一條數(shù)據(jù)到數(shù)據(jù)表中。

   INSERT  INTO Fruit

        ( Id, Name, Color, Quantity )

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

這種方式是我們常用的一種插入數(shù)據(jù)的方式,給出所有的列名集合與值集合。

 

方式二:省略列集合

 

   INSERT  INTO Fruit

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

 

這種方式我們省略了列名集合,這種方式值集合必須與數(shù)據(jù)表定義時(shí)列的順序相一至,必須賦的值不能省略。

 

方式三:插入部分字段

  

   INSERT  INTO Fruit

        ( Id, Name )

VALUES ( 3, 'Apples') ;

這種方式,我們不必給出所有字段列表,只插入我們需要的字段即可。

以上三種方式是我們?cè)趯?shí)際使用中最為常見的插入數(shù)據(jù)的方式,下面給出的也許會(huì)讓你眼前一亮。

 

方式四:一條插入語(yǔ)句插入多條數(shù)據(jù)

 

   INSERT  INTO Fruit

        ( Id, Name, Color, Quantity )

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

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

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

 

在這兒,我用一條插入語(yǔ)句同時(shí)插入了三條不同的數(shù)據(jù)到Fruit數(shù)據(jù)表中。

 

方式五:使用SELECT語(yǔ)句同時(shí)插入多條數(shù)據(jù)。

 

   INSERT  INTO Fruit

        ( Id ,

          Name ,

          Color,

          Quantity

        )

        SELECT  7 +( 6 - Id ) ,

                Name,

                'White',

                Quantity

        FROM    Fruit

        WHERE   Id > 3

        ORDER BY Id DESC ;

 

在方式五中,我通過(guò)選擇Fruit表中 Id 大于 3 記錄插入到Fruit表中。這是從水果表中現(xiàn)有的值派生出來(lái)的。

 

方式六:使用存儲(chǔ)過(guò)程插入數(shù)據(jù)。

 

首先、我們建立一個(gè)存儲(chǔ)過(guò)程如下:

   CREATE PROC HybridFruit

   AS

    SELECT  b.Id + 9 ,

            a.Name + b.name

    FROM    Fruit a

            INNERJOIN Fruit b ON a.Id = 9 - b.Id ;

GO  

 

現(xiàn)在我們使用上面建立的存儲(chǔ)過(guò)程進(jìn)行數(shù)據(jù)的插入,方法如下:

   INSERT  INTO Fruit

        ( Id, Name )

        EXECUTE HybridFruit;

 

 

方式七:使用OUTPUT子句輸出插入的數(shù)據(jù)以供外部使用。

  

   INSERT  INTO Fruit

    ( Id, Name )

   OUTPUT  INSERTED.*

VALUES ( 18, 'PieCherries' ) ;

 

在這兒,我們通過(guò)使用OUTPU子句輸出了同步插入的數(shù)據(jù)。

 

方式八:通過(guò)OUTPUT子句把結(jié)果返回給客戶端。

 

為了方便演示,我先把Fruit表的Id列設(shè)為自動(dòng)增長(zhǎng)列。

   ALTER TABLE Fruit

   DROP COLUMN Id ;

   ALTER TABLE Fruit

ADD Id INTIDENTITY ;

現(xiàn)在我們來(lái)通過(guò)OUTPUT子句插入值并把結(jié)果返回給客戶端。

DECLARE @INSERTED AS TABLE ( Id INT, Name VARCHAR(100) ) ;

 

--使用OUTPUT插入

INSERT  INTO Fruit

       ( Name,Color )

OUTPUT  INSERTED.Id, INSERTED.Name

        INTO @INSERTED

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

       ( 'Oranges', 'Orange' ) ;

-- 顯示插入的值

SELECT  *

FROM    @INSERTED ;

 

 

以上就是八種方式,也許對(duì)你有用,僅作參考使用,謝謝~!


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI