zoukankan      html  css  js  c++  java
  • 存储过程 set 和 select 对变量赋值的区别 (转自Theo)

    SQL Server 中对已经定义的变量赋值的方式有两种,分别是 SETSELECT

    当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法

    下表列出 SET 与 SELECT 的区别。请特别注意红色部分。

    set select
    同时对多个变量同时赋值 不支持 支持
    表达式返回多个值时 出错 将返回的最后一个值赋给变量
    表达式未返回值 变量被赋null值 变量保持原值     

     例如:

    表达式返回多个值时,使用 SET赋值“报错”

    表达式返回多个值时,使用 SELECT 赋值

    declare @addr varchar(128)
    select @addr = addr from chinadba1
    print @addr --结果集中最后一个 addr 列的值
    --结果: addr3
    go

    表达式未返回值时,使用 SET 赋值

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

    表达式未返回值时,使用 SELECT 赋值

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

                                                                                                                         

  • 相关阅读:
    stc单品机的命名规则
    代码导入单片机运行
    openlayers tips
    LeetCode 766. Toeplitz Matrix
    【题集】二叉树的遍历各类题型汇总
    LeetCode 821. Shortest Distance to a Character
    关于C++中vector<vector<int> >的使用
    POJ
    LeetCode#155 Min Stack
    LeetCode#160 Intersection of Two Linked Lists
  • 原文地址:https://www.cnblogs.com/wangzhening6/p/14047917.html
Copyright © 2011-2022 走看看