位置: 编程技术 - 正文

sqlserver存储过程中SELECT 与 SET 对变量赋值的区别(sqlserver存储过程返回多个结果集)

编辑:rootadmin

推荐整理分享sqlserver存储过程中SELECT 与 SET 对变量赋值的区别(sqlserver存储过程返回多个结果集),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sqlserver存储过程的创建和使用,sqlserver存储过程加密,sqlserver存储过程怎么查看,sqlserver存储过程声明变量,sqlserver存储过程语法,sqlserver存储过程在哪里,sqlserver存储过程if语句,sqlserver存储过程声明变量,内容如对您有帮助,希望把文章链接给更多的朋友!

sqlserver存储过程中SELECT 与 SET 对变量赋值的区别(sqlserver存储过程返回多个结果集)

SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值。当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法。下表列出 SET 与 SELECT 的区别。请特别注意红色部分。

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

下面以具体示例来说明问题:create table chinadba1(userid int ,addr varchar() )goinsert into chinadba1(userid,addr) values(1,'addr1')insert into chinadba1(userid,addr) values(2,'addr2')insert into chinadba1(userid,addr) values(3,'addr3')go表达式返回多个值时,使用 SET 赋值 declare @addr varchar()set @addr = (select addr from chinadba1)/*--出错信息为服务器: 消息 ,级别 ,状态 1,行 2子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。*/go表达式返回多个值时,使用 SELECT 赋值 declare @addr varchar()select @addr = addr from chinadba1print @addr --结果集中最后一个 addr 列的值--结果: addr3 go表达式未返回值时,使用 SET 赋值 declare @addr varchar()set @addr = '初始值'set @addr = (select addr from chinadba1 where userid = 4 )print @addr --null值 go表达式未返回值时,使用 SELECT 赋值 declare @addr varchar()set @addr = '初始值'select @addr = addr from chinadba1 where userid = 4print @addr --保持原值go需要注意的是,SELECT 也可以将标量子查询的值赋给变量,如果标量子查询不返回值,则变量被置为 null 值。此时与 使用 SET 赋值是完全相同的对标量子查询的概念大家应该都觉得陌生,举个例子就能说明declare @addr varchar()set @addr = '初始值'--select addr from chinadba1 where userid = 4 为标量子查询语句select @addr = (select addr from chinadba1 where userid = 4) print @addr --null值go

sqlserver 高性能分页实现分析 先来说说实现方式:1、我们来假定Table中有一个已经建立了索引的主键字段ID(整数型),我们将按照这个字段来取数据进行分页。2、页的大小我们放

SQL里类似SPLIT的分割字符串函数 一,用临时表作为数组createfunctionf_split(@cvarchar(),@splitvarchar(2))returns@ttable(colvarchar())asbeginwhile(charindex(@split,@c)0)begininsert@t(col)values(substring(@c,1,charindex(@s

关于 SQL Server ErrorLog 错误日志说明 默认情况下,SQLServer保存7个ErrorLog文件,名为:ErrorLogErrorLog.1ErrorLog.2ErrorLog.3ErrorLog.4ErrorLog.5ErrorLog.6在APACSOS版本6.1中,ErrorLog文件保存在c:ProgramFilesMicro

标签: sqlserver存储过程返回多个结果集

本文链接地址:https://www.jiuchutong.com/biancheng/349225.html 转载请保留说明!

上一篇:sqlserver Case函数应用介绍(sql里case)

下一篇:sqlserver 高性能分页实现分析(sqlserver性能优化)

  • 个所得税计算方法
  • 收到银行存兑汇票
  • 用银行支付本月生产车间保险费820元
  • 税控盘维护费开的是普票可以抵扣吗
  • 税控盘费用抵扣
  • 被投资方宣告发放股票股利
  • 进项税额转出还能认定虚开吗
  • 个税为负数如何申报
  • 社会团体所涉及的法律
  • 怎么从其他公司挖人
  • 代开增值税票普票专票税点一样吗
  • 企业所得税查增值税吗
  • 收入未确认可以结转成本吗
  • 差旅费报销怎么做账
  • 应扣未扣税款向谁追缴
  • 施工企业确认收入的方法有哪两种
  • 债权受让方如何交税
  • 房地产教育培训
  • 反倾销税由谁缴纳
  • 对公账户开通网银有什么好处
  • 银行代发工资一定要本行卡吗
  • 没票的购进能入成本吗
  • 会计中坏账准备的借贷方向
  • 财务报表包括哪几个表
  • 存货跌价准备是谁的备抵账户
  • 什么叫经济作物和粮食作物
  • php网站架设
  • 华为鸿蒙系统支持苹果手表吗
  • PHP:pg_field_table()的用法_PostgreSQL函数
  • 解除劳动合同后需要把合同拿回来吗
  • php 调试工具
  • php怎么上传图片并保存到数据库
  • 审图费谁出
  • 哪些可以计入研发费用
  • 银行利息的收入计入什么科目
  • 帝国cms插件编写教程
  • 报表中的盈余公积怎么算
  • python的utils模块
  • 消费税算不算运费
  • 预收账款可以用什么科目核算
  • 转账支票背书盖章图位置
  • 投资性房地产在建期间需要摊销吗
  • 农副产品普通发票可以抵扣增值税吗
  • 结转以前年度成本分录怎么写
  • 冲回多提的坏账准备会计分录
  • acca中ebq等于
  • 实际报销金额
  • 收购企业如何做账务处理
  • 应收款钱已收回会计分录
  • 贷款罚息会计分录
  • 运输业户
  • 为什么持有库存
  • 装修费摊销怎么计算公式
  • sql null用法
  • vmware虚拟机怎么克隆
  • windows7的所有操作都可以从( )
  • win1020h2版本问题
  • linux 操作系统
  • register.exe - register进程有什么用.是什么意思
  • windows 7光盘
  • win1021年更新
  • linux三种用户权限
  • linux k
  • opencv轻松入门
  • ExtJS中设置下拉列表框不可编辑的方法
  • 我今天抽6
  • [置顶] rwmfqg
  • 学习雷锋好榜样
  • unity3d应用开发
  • shell脚本实例精讲
  • unity网络请求
  • Python装饰器基础详解
  • jquery点击方法
  • Android之ContentProvider
  • android drawpath
  • python数据类型详解
  • 增值税纳税申报表附列资料(一)
  • 沈阳市房产契税查询
  • 海南国税局待遇
  • 2021年房产税收新政
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设