首页
学习
活动
专区
圈层
工具
发布

【SQL Server】变量的使用

变量的分类 局部变量:(仅在过程中使用) 局部变量必须标记@作为前缀,如@age。 局部变量的使用也是先声明(使用declare),再赋值。...局部变量定义与赋值 局部变量的定义语法 DECLARE @变量名 数据类型 赋值方法 SET @变量名 = 值 或 SELECT @变量名 = 值 使用select赋值确保筛选出的记录只有一条...set select 同时对多个变量赋值 不支持 支持 表达式返回多个值时 出错 将返回的最后一个值赋给变量 表达式未返回值时 变量被赋NULL值 变量保持原值 全局变量的使用 变量 含义 @@ERROR...最后一个T-SQL错误的错误号 @@IDEENTITY 最后一次插入的标识值 @@LANGUAGE 当前使用的语言的名称 @@MAX_CONNECTIONS 可以创建的同时连接的最大数目 @@ROWCOUNT...受上一个SQL语句影响的行数 @@SERVERNAME 本地服务器的名称 @@TRANSCOUNT 当前连接打开的事务数 @@VERSION SQLServer的版本信息

96310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Sql 中的变量使用

    我们在学 Python 或者其他编程语言的时候都应该有学过变量这么一个东西,可是 Sql 这种查询语言中怎么也有变量呢?具体有什么用呢? 我们来看一下实际应用场景。...那我们先来看一下 Mysql 数据库中怎么设置变量,以下是在 Mysql 中设置变量day的几种写法: set @day = "2019-08-01"; set @day := "2019-08-01"...; select @day := "2019-08-01"; 注意,如果使用 select 关键词进行变量赋值时,不可以使用 = 号,因为会默认把它当作比较运算符,而不是赋值,但是用关键词 set 进行变量赋值时是可以直接用...我们再来看看Hql(Hive-sql)中的变量赋值怎么设置,变量赋值的时候也是用的关键词 set,在变量引用那里和 Mysql 稍有不同,需要多加一个参数 hiveconf。...hiveconf:day} and time3 = ${hiveconf:day} and time4 = ${hiveconf:day} 以上就是关于 Mysql 和 Hql 这两种数据库中变量的使用方法

    13.2K50

    SQL中的for xml path

    SQL刷题专栏 SQL145题系列 最近出的每日一题里面,有一道是关于合并同类型数据为一行的题,使用SQL Server 2017版本及以上的直接使用STRING_AGG()函数即可,但是2016版本以下是没有这个功能的...今天就给大家介绍一下FOR XML PATH,它就是用来处理低版本数据库中数据合并的,是一个比较古老的功能了,新版本中也依然还能使用。...测试数据建立好后,我们开始对这个表里面的数据进行查询,并使用上FOR XML PATH。...然后我们把XML中的给去掉。 结果如下: 可以看到我们写的所有爱好都给列出来了,没有去掉重复的,可以理解成把列里的值都显示出来了。...character_expression 可以是常量、变量,也可以是字符列或二进制数据列。 start :一个整数值,指定删除和插入的开始位置。

    73210

    理解和使用SQL Server中的并行

    首先,所有必要地执行串行计划SQL代码已经存在并且已经被优化多年和在线发布。其次,方法的方位很合适:如果更多线程被调用,SQLServer 能轻易添加额外计划分之来分配更多线程。...一个执行上下文来自查询计划的一部分,该内容通过填写在计划重新编译和优化后的细节来产生。这些细节包括了直到运行才有的引用对象(如批处理中的临时表)和运行时的参数以及局部变量。...不仅可以分割、合并、重定向行在多线程上,还可以做到如下事情: 使用五中不同的策略来确定输出输入行的路线。 如果需要,可以保留输入行的顺序。...总结     通过一个简单的查询引入并行,并且对照了一个真实的数糖豆的案例,为了研究SQLServer中并行的使用的优点,暂时没有考虑与多线程设计相关的复杂情况。...并行区域扩展出多个串行查询,每个串行都使用了独立线程来处理执行上下文的任务。交换操作符被用来匹配线程之间的行并且在并行计划中实现与不止一个线程交互。

    4K90

    SQL Server中的GUID

    1、在 SQL Server 中使用 GUID 如果在 SQL Server 的表定义中将列类型指定为 uniqueidentifier,则列的值就为 GUID 类型。...SQL Server 中的 NewID() 函数可以产生 GUID 唯一值,使用此函数的几种方式如下: 1) 作为列默认值 将 uniqueidentifier 的列的默认值设为 NewID(),这样当新行插入表中时...2)使用 T-SQL 在 T-SQL 中使用 NewID()函数,如“INSERT INTO Table(ID,… ) VALUES(NewID(),…)”来生成此列的 GUID 值。...而 Guid 计算全部 16 个字节,这种差异可能会给 SQL Server 中 uniqueidentifier 列的排序带来一定影响,当然这种排序意义也不大。....NET Framework 中可以使用类 GuidConverter 提供将 Guid 结构与各种其他表示形式相互转换的类型转换器。

    7.4K20

    SQL Server中SET QUOTED_IDENTIFIER的使用

    SQL Server中SET QUOTED_IDENTIFIER的使用 在存储过程中经常会有 SET QUOTED_IDENTIFIER on SET QUOTED_IDENTIFIER off...那是因为distinct是sqlserver的标识符,如果想以distinct为表时,在QUOTED_IDENTIFIER为off的情况下,是不能创建表名为distinct的表的,因为在QUOTED_IDENTIFIER...为off情况下,sqlserver的标识符是不允许加引号的,所以在 SET QUOTED_IDENTIFIER off的情况下,不管distinct加引号或不加引号或加双引号都是不可以的。...但是在 SET QUOTED_IDENTIFIER on 的情况下是可以把sqlserver的标识符加上双引号来创建以sqlserver标识符为表名的表,但是加单引号也是不可以的。...当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,加了引号也没有用,且必须符合所有 Transact-SQL 标识符规则。

    1.4K40

    SQL Server 事务的使用

    前言 在做项目的过程中,有时同一个操作会同时对数据库中的两张表进行操作,比如在机房收费系统中,下机需要把下机记录更新到下机表中,同时又要更新卡表中的余额,如果在操作数据库的过程中出现错误,只对其中的某一张表进行了操作...性质 原子性(Atomic):事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部失败。...语法 BEGIN TRAN:开始事务,设置事务的起始点。 COMMIT TRAN:提交事务,使事务成为数据库中永久的、不可逆转的一部分。...ROLLBACK TRAN:回滚事务,放弃事务中对数据库所做的修改。 SAVE TRAN:设置事务的保存点。...; END 事务可以设置在程序的代码中,也可以写在数据库的脚本中,下面是一个事务和存储过程结合使用的例子 ALTER PROCEDURE [dbo].

    1.6K10

    SQL Server 中的死锁检测

    从 SQL Server 2012 (11.x) 开始,xml_deadlock_report应使用扩展事件 (xEvent),而不是 SQL 跟踪或 SQL 事件探查器中的死锁图事件类。...同样从 SQL Server 2012 (11.x) 开始,当发生死锁时,system_health会话已捕获xml_deadlock_report包含死锁图的所有 xEvent。...方法如下:右击,筛选器里面填写下面的过滤条件最后一条这个就是刚才我们模拟的死锁的日志记录可以看到sql明细也可以使用下面的sql, 以下查询可以查看system_health会话环形缓冲区捕获的所有死锁事件...为了帮助最大限度地减少死锁:以相同的顺序访问对象。避免交易中的用户交互。- 保持交易简短并集中进行。使用较低的隔离级别。使用基于行版本控制的隔离级别。...view=sql-server-ver16https://www.mssqltips.com/sqlservertip/5658/capturing-sql-server-deadlocks-using-extended-events

    2.1K10

    (二)Sql Server的基本配置以及使用Navicat连接Sql Server

    一.sql server连接的验证方式 分为两种: Windows 身份认证: 使用windows的用户名密码验证 SQL Server 身份认证 : 使用sql server的用户名 + 密码的方式登录...SQL Server 身份认证 (一般情况下都会使用这种验证方式而不是windows验证) 配置支持远程连接 (否则不支持远程连接) 修改SA账号密码并启用(sa用户为内置的账号,一般使用这个账号连接sql...打开ssms 打开后采用默认的windows验证先连接上sql server 配置验证方式以及”支持远程连接” 修改sa账号的密码并启用 三.使用Navicat工具连接Sql...,习惯了,所以一般比较喜欢用navicat连接并操作数据库 使用navicat 连接sql server需要先安装sql server 驱动,否则连接时会报错找不到驱动 在navicat的安装目录下找到...sqlserver的驱动双击安装即可 现在我们就可以连接Navicat了,需注意的是连接名后面需要使用半角的逗号去指定端口,而mysql则不需要,算是一个坑吧,sql server默认的端口为1433

    22.7K41

    SQL Server中With As的介绍与应用(二)--递归的使用

    前言 前一篇《SQL Server中With As的介绍与应用(一)--With As的介绍》我们介绍了一下SQL中With As,在With As中还可以进行递归的调用,这一篇我们就来讲讲递归的使用。...代码演示 一般我们使用递归的方式都是通过UNION ALL的方式,在UNION ALL 下面可以直接引用我们定义的with as的名称,如下: ?...这就可以看出来,其实with as的递归方式还是很简单的,只要理解了UNION ALL上面的语句直接可以引用即可。 ---- 接下来我们把刚才这个取数改一下,变为我们要得到100以内的奇数。...实现我们取余数并且加入判断这里我们就用到了sql中的case when XXX then XXX else YYY end 我们直接贴出来代码 declare @count int select @count...,最终实现的效果如下图: ?

    1.5K20

    使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历

    原文:使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历 常常遇到需要向SQL Server插入批量数据,然后在存储过程中对这些数据进行进一步处理的情况。...存储过程并没有数组、列表之类的参数类型,使用XML类型可妥善解决这个问题。 不过,SQL Server2005对标准xml的支持不足,很多地方需要特别处理。举一个例子说明一下。...但是SQL Server对xml的命名空间识别是有问题的,.net默认的序列化会出现xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns...3.原来,XML的时间标准格式是”年-月-日T时:分:秒-时区” SQL Server2005不支持时区,所以它也不能支持xml的时间格式(倒是支持年-月-日T时:分:秒)。...这个问题在SQL server 2008中得到改进,完整支持了xml的时间格式。但是我们数据库是2005,没办法,得想个办法解决。

    1.4K00

    tomcat学习|tomat中的server.xml的学习

    就是Servlet容器,如上文我们提到的Coyote, Jasper,EL , Naming, Juli等等都是为了Catalina服务,而catalina的初始就是我们常用的server.xml,所以我们今天就从...server.xml来进入catalina的学习 server.xml 以前我们可能只改过connector中的端口,如果做部署的话,也会修改host下面的东东 ?...包含 context(默认的server.xml里面没有)但是我们在实际发布时会配置上这个 context 包含wrapper 组件基本解释 Server 表示整个Servlet容器,Tomcat运行时...Context 从字面上来就是上下文,放tomcat中,上下文就代表着一个完整的web应用 Wrapper Wrapper 作为一类容器,用于表示web 应用中定义的servlet 最后说两句 server.xml...是我们能够与tomcat服务直接交互的地方,我们可以通过server.xml配置tomcat的绝大多数属性.

    47640

    sql中declare的用法_sql局部变量

    大家好,又见面了,我是你们的朋友全栈君。 换工作了,以后主要和SqlServer打交道了,仿佛回到了大学,不知道学校的饭还是那么好吃又便宜吗?...使用对象:类、接口、变量、方法 protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。...注意:不能修饰类(外部类) 举个例子 比如: for(int 1=0;i<10;i++){ ... ... ... } 此时int变量的范围知识在这个for循环里,一旦离开这个循环,int变量i将不存在...而SqlServer中的declare类型,可以理解为一个全局变量,像这样: 在一个全局类里面定义公共静态变量 public class Global {   public static int...abc = 0;   public static int def = 0; } 那么这个变量不仅仅在一个人for循环里面有效,在整体方法里面都是有效的,也不用在开头申明 官方链接:http://

    2.3K30

    Sql server DATEADD日期函数的使用

    大家好,又见面了,我是你们的朋友全栈君。 DATEADD日期函数 DATEADD() 函数在日期中添加或减去指定的时间间隔。...number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。...datepart 参数可以是下列的值: datepart 缩写 年 yy, yyyy 季度 qq, q 月...如果,您希望更容易地发现我的新博客,不妨点击一下,【关注我】 如果,您希望给我更多的鼓励,不妨在右侧点击,【打赏一下】 博文是自己对学习成果的总结,学习总结知识-》分析问题-》解决问题。...文中存在的观点/描述不正确的地方,欢迎指正。 感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是yxtic 。

    2.8K40

    SQL Server中的锁的简单学习

    我们最常用的查看数据库锁的手段不外乎两种:     使用sys.dm_tran_locks这个DMV          SQL Server提供了sys.dm_tran_locks这个DMV来查看当前数据库中的锁...开发人员不用担心SQL Server是如何决定使用哪个锁的。因为SQL Server已经做了最好的选择。     在SQL Server中,锁的粒度如表1所示。...,所以为了平衡性能与并发之间的关系,SQL Server使用一个表锁来替代6000个key锁,这就是所谓的锁升级。...图10.使用一个表锁代替6000个键锁     虽然使用一个表锁代替了6000个键锁,但是会影响到并发,我们对不在上述查询中行做更新(id是50001,不在图10中查询的范围之内),发现会造成阻塞,如图...在SQL Server中,资源是有层次的,一个表中可以包含N个页,而一个页中可以包含N个行。当我们在某一个行中加了锁时。可以理解成包含这个行的页,和表的一部分已经被锁定。

    2.7K60
    领券