go 向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号。go是把t-sql语句分批次执行。(一步成功了才会执行下一步,即一步一个go)
BEGIN 和 END 语句用于将多个 Transact-SQL 语句组合为一个逻辑块。在控制流语句必须执行包含两条或多条 Transact-SQL 语句的语句块的任何地方,均可以使用 BEGIN 和 END 语句。sql
声明:DECLARE @local_variable data_type数据库
@local_variable 是变量的名称。变量名必须以 at 符 (@) 开头。data_type 是任何由系统提供的或用户定义的数据类型。变量不能是 text、ntext 或 image 数据类型。函数
全局变量是系统预约义的,返回一些系统信息,全局变量以两个@@开头。工具
全局变量是sql server(WINDOWS平台上强大的数据库平台)系统内部使用的变量,其做用范围并不局限于某一程序,而是任何程序都可随时调用全局变量一般存储一些sql server(WINDOWS平台上强大的数据库平台)的配置设定值和效能统计数据。用户可在程序中用全局变量来测试系统的设定值或Transact-SQL命令执行后的状态值。有关sql server(WINDOWS平台上强大的数据库平台) 全局变量的详细状况请参见附录。sqlserver
在SQL注入时经常使用的全局变量测试
@@datadir # 数据库的安装路径操作系统
@@hostname #主机名code
@@version_compile_os #操做系统server
3.Sqlserver存储过程当中使用Select和Set给变量赋值对象
Sqlserver存储过程是时常使用到的一个数据库对象,在存储过程当中会使用到Declare来定义存储过程变量,定义的存储过程变量能够经过Set或者Select等关键字方法来进行赋值操做,使用Set对存储过程变量赋值为直接赋值,使用Select则通常从数据表中查找出符合条件的属性进行赋值操做。
例如,下面定义一个存储过程年龄字段@Age字段。
Declare @Age int;
使用Set方式赋值的语句可写做为:Set @Age=32;
若是咱们要从表UserTable中查找出名字为张三的人的年龄,而后将之赋值给@Age变量,就得使用Select方式来赋值了,赋值方式以下:
Select @Age=Age FROM UserTable Where Name='张三';
此处使用Select进行赋值的话须要注意个点,Select查询语句一条记录都没查找出来,@Age字段将不会有任何改变,也不会赋值为Null,这个状况博主在实际业务中遇到过,就是使用了while循环,而后在循环中采用Select对特定变量赋值,发现若是Select查询集合为空集的时候,变量值不是赋值为NULL,而是直接保持上一次循环赋值的结果。
print @变量 是以文本的方式在消息栏显示。
select @变量 是以表的形式在结果栏显示。
SELECT 为查询语句,而PRINT是输出语句
SELECT 后能够跟任copy意的SQL ERVER数据类型,字段、标量函数等
PRINT后跟的只能有三种状况
1:PRINT后能够跟字符串或 Unicode 字符串常量。
2:PRINT后能够跟任何有效的字符数据类型的变量,且数据类型必须是 char 或 varchar,或者必须可以隐式转换为这些数据类型。
3:PRINT后能够跟返回字符串的表达式。可包括串联的文字值、函数和变量。消息zd字符串最长可为 8,000 个字符,超过该值之后的任何字符均被截断。
SQL是Structrued Query Language的缩写,即结构化查询语言。它是负责与ANSI(美国国家标准学会)维护的数据库交互的标准。做为关系数据库的标准语言,它已被众多商用DBMS产品所采用, 使得它已成为关系数据库领域中一个主流语言,不只包含数据查询功能,还包括插入、删除、更新和数据定义功能.
接下来讲一下T-SQL语言:
T-SQL是SQL语言的一种版本,且只能在SQL SERVER上使用。它是ANSI SQL的增强版语言、提供了标准的SQL命令。另外,T-SQL还对SQL作了许多补允,提供了相似C、Basic和Pascal的基本功能,如变量说明、流控制语言、功能函数等。”
数据类型 decimal 和 numeric 虽然在小数存储方面都同样,但建议使用Decimal
在SQL Server中,实际上小数数值只有两种数据类型:float 和 decimal,分别是近似数值和精确数值。其余小数类型,均可以使用float和decimal来替代,例如,双精度(double precision)数据类型等价于 float(53),real等价于float(24),numeric是 decimal的同义词,应该避免在程序中直接使用 double precision、**real和numeric**,而是用 float(24) 、float(53)和decimal 代替。
float是近似数值,存在精度缺失;decimal是精确数值,不存在精度损失。当数值不容许精度丢失时,使用 decimal数据类型存储数据。在计算小数的除法时,SQL Server 内部隐式升级数据类型,根据小数数值的数据类型,就近向float(24) 或float(53)转换。
语法:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
例子:
EXEC sp_rename 'HumanResources.uspGetAllEmployeesTest', 'uspEveryEmployeeTest';
not exists 和not in 分别是exists 和 in 的 对立面。
exists (sql 返回结果集为真)
not exists (sql 不返回结果集为真)
文章持续更新,若是喜欢,请拿起大家可爱的小手,给我点个赞吧!点赞是一种积极的生活态度,赞一个吧!