kxbin
          成功留給有準備的人
          posts - 10,  comments - 35,  trackbacks - 0

               做開發的同仁對于向數據庫中插入數據可謂是太普通不過了,也沒什么說的,一般都是采用常用的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 ;

          posted on 2012-09-18 15:09 kxbin 閱讀(18463) 評論(0)  編輯  收藏 所屬分類: MYSQLMSSQL轉發
          你恨一個人是因為你愛他;你喜歡一個人,是因為他身上有你沒有的;你討厭一個人是因為他身上有你有的東西;你經常在別人面前批評某人,其實潛意識中是想接近他。

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(5)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          J2EE

          java技術網站

          Linux

          平時常去的網站

          數據庫

          電影網站

          網站設計

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 桐乡市| 安塞县| 安多县| 轮台县| 衡南县| 广元市| 盘锦市| 酒泉市| 湖州市| 凯里市| 专栏| 上虞市| 通许县| 磴口县| 穆棱市| 梧州市| 施甸县| 咸阳市| 雅江县| 蓬溪县| 政和县| 密山市| 砚山县| 云南省| 蕲春县| 苍南县| 嘉峪关市| 海晏县| 龙井市| 舞阳县| 合作市| 田东县| 德令哈市| 固阳县| 高青县| 花莲市| 容城县| 通渭县| 白朗县| 石林| 阿巴嘎旗|