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

                                                                                                                         

  • 相关阅读:
    Android_方向传感器
    Android 网络图片查看器与网页源码查看器
    SQLite数据库_实现简单的增删改查
    Android 解析JSON
    多线程
    并发编程
    幂等性
    Django缓存机制
    计算机基础
    RESTful规范
  • 原文地址:https://www.cnblogs.com/wangzhening6/p/14047917.html
Copyright © 2011-2022 走看看