T-sql(SQL Server)

来源:互联网 发布:网络银商最重的判刑 编辑:程序博客网 时间:2024/04/30 08:37

//sqlserver

-----------SQLSERVER
--1 查看数据库的版本
--select @@version
--2 查看数据库所在机器操作系统参数
--exec master..xp_msver
--3 查看数据库启动的参数
--sp_configure
--4 查看数据库启动时间
--select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
--5 查看数据库服务器名和实例名
--print 'Server Name...............: ' + convert(varchar(30),@@SERVERNAME)
--print 'Instance..................: ' + convert(varchar(30),@@SERVICENAME)
--6 查看所有数据库名称及大小
sp_helpdb
--7 重命名数据库用的SQL
--sp_renamedb 'old_dbname', 'new_dbname'
--8 查看所有数据库用户登录信息
--sp_helplogins
--9 查看所有数据库用户所属的角色信息
--sp_helpsrvrolemember
--修复迁移服务器时孤立用户时,可以用的fix_orphan_user脚本或者LoneUser过程
--10 更改某个数据对象的用户属主
--sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'
--注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
--把一台服务器上的数据库用户登录信息备份出来可以用add_login_to_aserver脚本

--11 查看链接服务器
--sp_helplinkedsrvlogin
--12 查看远端数据库用户登录信息
--sp_helpremotelogin

--9.查看数据库里所有的存储过程和函数
use @database_name
sp_stored_procedures
--查看存储过程和函数的源代码
sp_helptext '@procedure_name'
--查看包含某个字符串@str的数据对象名称
select distinct object_name(id) from syscomments where text like '%@str%'
--建加密的存储过程或函数在AS前面加WITH ENCRYPTION参数
--解密加密过的存储过程和函数可以用sp_decrypt过程

--10.查看数据库里用户和进程的信息
sp_who
--查看SQL Server数据库里的活动用户和进程的信息
sp_who 'active'
--查看SQL Server数据库里的锁的情况
sp_lock
--进程号1--50是SQL Server系统内部用的,进程号大于50的才是用户的连接进程.
--spid是进程编号,dbid是数据库编号,objid是数据对象编号
--查看进程正在执行的SQL语句
dbcc inputbuffer ()
--推荐大家用经过改进后的sp_who3过程可以直接看到进程运行的SQL语句
sp_who3
--检查死锁用sp_who_lock过程
sp_who_lock

--11.收缩数据库日志文件的方法
--收缩简单恢复模式数据库日志,收缩后@database_name_log的大小单位为M
backup log @database_name with no_log
dbcc shrinkfile (@database_name_log, 5)

--12.分析SQL Server SQL 语句的方法:
set statistics time ...{on | off}
set statistics io ...{on | off}
--图形方式显示查询执行计划
--在查询分析器->查询->显示估计的评估计划(D)-Ctrl-L 或者点击工具栏里的图形
--文本方式显示查询执行计划
set showplan_all ...{on | off}
set showplan_text ...{ on | off }
set statistics profile ...{ on | off }


和C语言一样,变量分为:
Ø局部变量:
Ø局部变量必须以标记@作为前缀 ,如@age
Ø局部变量的使用也是先声明,再赋值
Ø全局变量
Ø全局变量必须以标记@ @作为前缀,如@@version
Ø全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值

变量声明
DECLARE @VariableName Data_Type
变量赋值
1)用SELECT语句为局部变量赋初始值
select @variable=expression
 2)用SET语句为局部变量赋初值
SET  @variable=expression
Declare @a Datetime,@b Datetime
select @a=max(出生日期) from student
Set  @b=getdate()
select @a


GO是批处理的标志,表示SQL Server将这些T-SQL语句编译为一个执行单元,提高执行效率。
一般是将一些逻辑相关的业务操作语句,放置在同一批中,这完全由业务需求和代码编写者决定。


如果一个批处理中的第一个语句是执行某个存储过程的EXECUTE语句,则EXECUTE关键字可以省略;
如果该语句不是第一个语句则必须使用EXECUTE关键字,EXECUTE可
以省略为“EXEC”

控制语句

if

begin..end

else

begin..end


CASE表达式是一个特殊的Transact-SQL表达式,它使用户能够很方便的实现多重选择的情况。
使用CASE表达式,
实际上相当于使用多重IFTHEN的嵌套循环,但是却简单明了.CASE表达式的语法形式为:
CASE  [字段名或变量名]
WHEN 逻辑表达式1  THEN 结果表达式1
WHEN 逻辑表达式2  THEN 结果表达式2
WHEN 逻辑表达式3  THEN 结果表达式3
WHEN 逻辑表达式4  THEN 结果表达式4
ELSE 结果表达式
END


while

begin...【break、continue...]end



GOTO:可以将执行流程改变到由标签指定的位置。系统跳过 GOTO 关键字之后的语句,并在 GOTO 语句中指定的标签处继续执行操作。

RETURN:可以在任意位置使用 RETURN 从语句块或过程中退出。系统将不会执行 RETURN 语句之后的语句。


vUSE pubs
vGO
vWHILE (SELECT AVG(price) FROM titles) < $30
vBEGIN  
vUPDATE titles     
vSET price = price * 2  
vSELECT MAX(price) FROM titles  
vIF (SELECT MAX(price) FROM titles) > $50     
vBREAK  
vELSE     
vCONTINUE
vEND


原创粉丝点击