位置: 编程技术 - 正文

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

  • 印花税纳税义务人有哪些
  • 资产负债表的其他流动资产包括哪些
  • 处置固定资产亏了怎么做账
  • 环境保护税属于什么税种
  • 信息服务费可以计入办公费吗
  • 公司净资产如何查询
  • 固定资产核算的心得体会
  • 收到虚开的普票已经入账怎么调账
  • 增值税专票怎么抵扣
  • 垫付被骗客服承诺退款
  • 总分包外地施工怎样预缴税款?
  • 长期挂账其他应付款违反了哪项制度
  • 房地产开发企业销售自行开发的房地产项目
  • 自己生产的产品用于职工福利
  • 增值税专票的收款人必须是个人嘛
  • 策划费收费标准
  • 进项发票账务处理
  • 工资薪金总额是指月还是全年
  • 统一信用社会代码怎么填
  • 全部出售子公司怎么做账
  • 法院执行费怎么收取法律依据
  • 收到退回的土地使用税分录怎么做
  • 员工两处取得的荣誉
  • 被投资企业所在地什么意思
  • php实现文件上传
  • 实收资本可以大于注册资本吗
  • 在建工程明细科目设置
  • 如何管理和维护企业微信客户
  • php零基础入门教程
  • 微信小程序分成比例
  • 外贸公司出口退税率是多少
  • php preg_match
  • Pytorch深度学习实战3-6:详解网络骨架模块nn.Module(附实例)
  • 新闻管理系统类图
  • windowsserver2012r2远程协助灰色
  • 异地预缴印花税是否可以抵扣
  • 怎么在网上增加办税人员
  • 贴现手续费计入哪个明细科目
  • 安装mysql5.1的步骤和方法
  • mysqldump导入数据库
  • 个体户电子申报税流程
  • 一般纳税人的账户可以随便转账到私人账户吗
  • 原始凭证的基本内容有会计分录吗
  • 下列项目的进项税额可以从销项税额中抵扣的是()
  • 其他应付款科目贷方登记发生的各种应付
  • 固定资产卡片账是什么
  • 盘盈盘亏怎么看
  • 基金申购费的会计分录
  • 以存货抵偿债务
  • 企业哪些部门
  • 净利润增长率的影响因素
  • 预计负债初始计量的最佳估计数的确定
  • 客运服务费发票计入什么科目
  • 财产租赁合同印花税计税依据
  • 未打印税务分类怎么处理
  • 购买方账务处理
  • 企业预算如何编制
  • MySQL数据库索引设计
  • SQL中实现SPLIT函数几种方法总结(必看篇)
  • mysql重置binlog
  • mysql创建用户密码命令
  • windows xp 注册表故障恢复
  • 红石使用基础教学
  • ssh免密登录执行shell
  • redhat系统界面
  • win8.1 应用商店是不是不能用了
  • linux的批处理
  • Win10控制面板在c盘哪里
  • win10系统笔记本怎么连接wifi
  • 语音聊天能不能调出来
  • jquery怎么写
  • vue源码是用什么写的
  • nodejs怎么学
  • 你必须知道的家长六种类型
  • 水利建设基金如何计提
  • 建设工程需要缴纳哪些税
  • 手机陌陌卸载还有记录吗
  • 劳务包含哪些
  • 宝鸡二套房契税多少
  • 河南网上报税流程图
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设