<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    憨厚生

    ----Java's Slave----
    ***Java's Host***

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      165 隨筆 :: 17 文章 :: 90 評(píng)論 :: 0 Trackbacks

    #

    SQL Server 中對(duì)已經(jīng)定義的變量賦值的方式用兩種,分別是 SET 和 SELECT。
    對(duì)于這兩種方式的區(qū)別,SQL Server 聯(lián)機(jī)叢書中已經(jīng)有詳細(xì)的說明,但很多時(shí)候我們
    并沒有注意,其實(shí)這兩種方式還是有很多差別的。

    SQL Server推薦使用 SET 而不是 SELECT 對(duì)變量進(jìn)行賦值。
    當(dāng)表達(dá)式返回一個(gè)值并對(duì)一個(gè)變量進(jìn)行賦值時(shí),推薦使用 SET 方法。

    下表列出 SET 與 SELECT 的區(qū)別。請(qǐng)?zhí)貏e注意紅色部分。

    set select
    同時(shí)對(duì)多個(gè)變量同時(shí)賦值 不支持 支持
    表達(dá)式返回多個(gè)值時(shí) 出錯(cuò) 將返回的最后一個(gè)值賦給變量
    表達(dá)式未返回值 變量被賦null值 變量保持原值

    下面以具體示例來說明問題:

    create table chinadba1(
    userid int ,
    addr varchar(128)
    )
    go
    insert into chinadba1(userid,addr) values(1,'addr1')
    insert into chinadba1(userid,addr) values(2,'addr2')
    insert into chinadba1(userid,addr) values(3,'addr3')
    go

    表達(dá)式返回多個(gè)值時(shí),使用 SET 賦值


    declare @addr varchar(128)
    set @addr = (select addr from chinadba1)
    /*
    --出錯(cuò)信息為
    服務(wù)器: 消息 512,級(jí)別 16,狀態(tài) 1,行 2
    子查詢返回的值多于一個(gè)。當(dāng)子查詢跟隨在 =、!=、<、<=、>、>= 之后,或子查詢用作表達(dá)式時(shí),這種情況是不允許的。
    */
    go

    表達(dá)式返回多個(gè)值時(shí),使用 SELECT 賦值

    declare @addr varchar(128)
    select @addr = addr from chinadba1
    print @addr --結(jié)果集中最后一個(gè) addr 列的值
    --結(jié)果: addr3
    go

    表達(dá)式未返回值時(shí),使用 SET 賦值

    declare @addr varchar(128)
    set @addr = '初始值'
    set @addr = (select addr from chinadba1 where userid = 4 )
    print @addr --null值
    go

    表達(dá)式未返回值時(shí),使用 SELECT 賦值

    declare @addr varchar(128)
    set @addr = '初始值'
    select @addr = addr from chinadba1 where userid = 4
    print @addr --保持原值
    go

    需要注意的是,SELECT 也可以將標(biāo)量子查詢的值賦給變量,如果標(biāo)量子查詢不返回值,則變量被置為 null 值。
    此時(shí)與 使用 SET 賦值是完全相同的
    對(duì)標(biāo)量子查詢的概念大家應(yīng)該都覺得陌生,舉個(gè)例子就能說明

    declare @addr varchar(128)
    set @addr = '初始值'
    --select addr from chinadba1 where userid = 4 為標(biāo)量子查詢語句
    select @addr = (select addr from chinadba1 where userid = 4)
    print @addr --null值
    go

    轉(zhuǎn)自:http://blog.csdn.net/shouyenet1/archive/2008/12/13/3511818.aspx

    posted @ 2009-12-02 17:10 二胡 閱讀(208) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共165頁: First 上一頁 15 16 17 18 19 20 21 22 23 下一頁 Last 
    主站蜘蛛池模板: 亚洲va久久久噜噜噜久久天堂| 亚洲一区无码精品色| 亚洲av片劲爆在线观看| a在线观看免费网址大全| 中文字幕亚洲乱码熟女一区二区| 一级毛片在线免费视频| AV在线播放日韩亚洲欧| 国产裸体美女永久免费无遮挡 | 成人毛片手机版免费看| 亚洲不卡影院午夜在线观看| 毛片免费观看视频| mm1313亚洲国产精品无码试看| 国产免费卡一卡三卡乱码| 边摸边吃奶边做爽免费视频网站| 九月婷婷亚洲综合在线| 久久久WWW免费人成精品| 亚洲AV无码国产精品麻豆天美| 91av免费观看| 亚洲乱理伦片在线观看中字| 国产一区视频在线免费观看 | 亚洲视频在线一区| 国产v精品成人免费视频400条| 亚洲色欲色欲www在线播放 | 美女被爆羞羞网站免费| 亚洲一级特黄大片无码毛片| 国产免费网站看v片在线| 亚洲国产美女福利直播秀一区二区| 国产a视频精品免费观看| 精品无码专区亚洲| 亚洲精品无码成人AAA片| 99无码人妻一区二区三区免费| 久久精品熟女亚洲av麻豆| 国产精品亚洲а∨无码播放| 可以免费看黄的网站| 五月天婷婷免费视频| 亚洲高清资源在线观看| 国产在线19禁免费观看| 日韩视频免费在线观看| 亚洲日韩精品国产一区二区三区| 久久亚洲色一区二区三区| 成人免费一级毛片在线播放视频|