位置: 编程技术 - 正文

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性能优化)

  • 电子设备租赁费专票税率
  • 可以税前扣除的利息费用有哪些
  • 自己的医院
  • 嵌入式软件产品的增值税即征即退具体实例
  • 进项税额抵扣计算
  • 什么是印花税的税目
  • 以前多摊销
  • 无形资产出资入股流程
  • 运输服务有3%的税率吗
  • 少付了几毛钱会计分录
  • 补交前期未开票收入税金本期怎么申报?
  • 进口缴纳的关税通过什么核算
  • 转让股权取得的收益是调增还是调减
  • 新成立的公司如何建账
  • 年会奖金多少合适
  • 工会经费按上年工资总额还是本年
  • 物业公司营改增税务筹划方案
  • 其他应付款质保金到期怎么附单据
  • 购买方申请的红字信息表编号如何查询
  • 跨年发票如何入账小企业会计准
  • 增值税做账做错怎么处理
  • 公司租土地建厂房应该怎么做账呢?
  • 销售折让怎么处理
  • 代扣代缴增值税附加税减免政策
  • 去办税大厅清卡需要带什么
  • 中国电信服务
  • 预收账款与应收账款为什么合并
  • 收到政府财政拨款用于购买生产设备
  • 企业清算期限如何规定
  • windows闹钟
  • 在win7中怎么安转只兼容win10的软件
  • 分公司 股东
  • PHP:Memcached::appendByKey()的用法_Memcached类
  • hg8321r路由
  • 以摊余成本计量和以公允价值计量的区别
  • 2023年第十一批专项债
  • yolov5源码讲解
  • 【小沐学C++】C++ MFC中嵌入web网页控件(WebBrowser、WebView2、CEF3)
  • vports命令怎么用
  • modprobe operation not permitted
  • 发票报销入账
  • 帝国cms上传视频半天没反应
  • 应收账款期末余额在借方还是贷方
  • 哪些情况进项税不可以抵扣?
  • php安装步骤
  • 企业股东分红可抵税吗
  • 哪些固定资产是按8年折旧的
  • 每天统计数据的表格
  • 现金流量表中的现金流量包括哪些
  • 预付账款用途
  • 开票金额和税款的关系
  • 金蝶美金账户怎么删除
  • 债务转实收资本的审批报告
  • win7操作系统中将打开窗口拖动到屏幕顶端
  • linux命令提示符不见了
  • bios关闭pxe
  • centos建站教程
  • win7开机假死
  • win10内置应用大全
  • Win7注册表怎么恢复命令
  • unity serial number
  • opengl opengl es
  • js设计模式有什么用
  • nodejs函数返回值
  • cocos2d schedule
  • [置顶] 混合、反走样、雾效、多边形偏移
  • css应用领域
  • 批处理删除指定后缀名
  • python获取当前地址
  • opencv人脸识别模型训练
  • jquery插件使用教程
  • javascript下拉列表怎么做
  • js常用方法总结
  • 简单介绍中秋节
  • python的params
  • 山东税务局电子税务局申报
  • 工会的会费收入是什么意思
  • 武汉电子税务局申领发票以后如何自取
  • 西安12345官网登录入口二维码
  • 公务员车补缴个税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设