(八大方法、逐層深入,有你一定沒見過的)使用INSERT語句向表中插入資料

來源:互聯網
上載者:User

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

使用INSERT語句向表中插入資料(MSSQLSERVER版)

 

         做開發的同仁對於向資料庫中插入資料可謂是太普通不過了,也沒什麼說的,一般都是採用常用的INSERT INTO [(欄位列表)] VALUES(欄位值列表),這樣的方式進行操作。今天,我要給大家介紹的是其他一些非常規的方式,一定會讓你耳目一新,眼前一亮。

         進入今天的主題,以了便於操作,我們首先建立一個執行個體資料表:

USE tempdb ;

GO

CREATE TABLE Fruit

   (

      Id INT NOT NULL ,

      Name VARCHAR(100) NOT NULL ,

      Color VARCHAR(100) NULL ,

      Quantity INT DEFAULT 1

) ;

 

方式一:傳統方式

 

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

 

我們插入一條資料到資料表中。

   INSERT  INTO Fruit

        ( Id, Name, Color, Quantity )

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

這種方式是我們常用的一種插入資料的方式,給出所有的列名集合與值集合。

 

方式二:省略列集合

 

   INSERT  INTO Fruit

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

 

這種方式我們省略了列名集合,這種方式值集合必須與資料表定義時列的順序相一至,必須賦的值不能省略

 

方式三:插入部分欄位

  

   INSERT  INTO Fruit

        ( Id, Name )

VALUES ( 3, 'Apples') ;

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

以上三種方式是我們在實際使用中最為常見的插入資料的方式,下面給出的也許會讓你眼前一亮。

 

方式四:一條插入語句插入多條資料

 

   INSERT  INTO Fruit

        ( Id, Name, Color, Quantity )

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

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

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

 

在這兒,我用一條插入語句同時插入了三條不同的資料到Fruit資料表中。

 

方式五:使用SELECT語句同時插入多條資料。

 

   INSERT  INTO Fruit

        ( Id ,

          Name ,

          Color,

          Quantity

        )

        SELECT  7 +( 6 - Id ) ,

                Name,

                'White',

                Quantity

        FROM    Fruit

        WHERE   Id > 3

        ORDER BY Id DESC ;

 

在方式五中,我通過選擇Fruit表中 Id 大於 3 記錄插入到Fruit表中。這是從水果表中現有的值派生出來的。

 

方式六:使用預存程序插入資料。

 

首先、我們建立一個預存程序如下:

   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  

 

現在我們使用上面建立的預存程序進行資料的插入,方法如下:

   INSERT  INTO Fruit

        ( Id, Name )

        EXECUTE HybridFruit;

 

 

方式七:使用OUTPUT子句輸出插入的資料以供外部使用。

  

   INSERT  INTO Fruit

    ( Id, Name )

   OUTPUT  INSERTED.*

VALUES ( 18, 'PieCherries' ) ;

 

在這兒,我們通過使用OUTPU子句輸出了同步插入的資料。

 

方式八:通過OUTPUT子句把結果返回給用戶端。

 

為了方便示範,我先把Fruit表的Id列設為自動成長列。

   ALTER TABLE Fruit

   DROP COLUMN Id ;

   ALTER TABLE Fruit

ADD Id INTIDENTITY ;

現在我們來通過OUTPUT子句插入值並把結果返回給用戶端。

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 ;

 

 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.