T-SQL 教程

以资料整理为目的,汇总一下自己从事于这近两年多的软件开发中常用的T-SQL,涵盖存储过程,分页,行转列、列转行,锁,全局变量,聚焦索引……

可能一说到T-SQL与PL/SQL大家可能有很多认知上的不足(本人也是迷糊了好长时间,才懂得其中内涵)

百度百科 名片介绍:T-SQL PL/SQL

简单点理解,就是T-SQL是用于MS SQLServer中,而PL/SQl适用于Oracle中的了

 

View Code
 select APP_NAME ( ) as w --当前会话的应用程序
 select @@ERROR    --返回最后执行的 Transact-SQL 语句的错误代码(integer)(如果最后一条语句不出错,就一直是0)
 select @@IDENTITY   --返回最后插入的标识值
 select USER_NAME()    --返回用户数据库用户名
 select @@CONNECTIONS  --返回自上次SQL启动以来连接或试图连接的次数。
 select GETDATE() --当前时间
 select @@CPU_BUSY/100  --返回自上次启动SQL 以来 CPU 的工作时间,单位为毫秒
 USE tempdb select @@DBTS  as w  --为当前数据库返回当前 timestamp 数据类型的值。这一 timestamp 值保证在数据库中是唯一的。
 select @@IDLE  as w  --返回SQL自上次启动后闲置的时间,单位为毫秒
 select @@IO_BUSY AS w   --返回SQL自上次启动后用于执行输入和输出操作的时间,单位为毫秒
 select @@LANGID AS w   --返回当前所使用语言的本地语言标识符(ID)
 select @@LANGUAGE AS w   --返回当前使用的语言名
 select @@LOCK_TIMEOUT as w  --当前会话的当前锁超时设置,单位为毫秒。
 select @@MAX_CONNECTIONS  as w  --返回SQL上允许的同时用户连接的最大数。返回的数不必为当前配置的数值
 EXEC sp_configure  --显示当前服务器的全局配置设置
 select @@MAX_PRECISION as w --返回 decimal 和 numeric 数据类型所用的精度级别,即该服务器中当前设置的精度。默认最大精度38。
 select @@OPTIONS  as w  --返回当前 SET 选项的信息。
 select @@PACK_RECEIVED as w  --返回SQL自启动后从网络上读取的输入数据包数目。
 select @@PACK_SENT as w  --返回SQ自上次启动后写到网络上的输出数据包数目。
 select @@PACKET_ERRORS as w  --返回自SQL启动后,在SQL连接上发生的网络数据包错误数。
 select @@SERVERNAME as w --返回运行SQL服务器名称。
 select @@SERVICENAME  as w --返回SQL正在其下运行的注册表键名
 select @@TIMETICKS  as w --返回SQL服务器一刻度的微秒数
 select @@TOTAL_ERRORS AS w  --返回 SQL服务器自启动后,所遇到的磁盘读/写错误数。
 select @@TOTAL_READ  as w  --返回 SQL服务器自启动后读取磁盘的次数。
 select @@TOTAL_WRITE as w  --返回SQL服务器自启动后写入磁盘的次数。
 select @@TRANCOUNT  as w  --返回当前连接的活动事务数。
 select @@VERSION as w  --返回SQL服务器安装的日期、版本和处理器类型。

 

再来看看针对MSSQL的备份语句

 

View Code
 --查询文件是否存在
 CREATE TABLE #tmp ([File Exists] BIT, [File is a Directory] BIT, [Parent Directory Exists] BIT)
  INSERT INTO #tmp ([File Exists], [File is a Directory], [Parent Directory Exists])
  EXEC master.dbo.xp_fileexist 'D:\Test.bak'
  SELECT * FROM #tmp
  DROP TABLE #tmp
 
 --完整备份数据库
 
 BACKUP DATABASE MyBakTest TO DISK='D:\Test.bak' WITH FORMAT
 
 --对tb表插入第一条记录
 
 INSERT INTO tb_user(uname) VALUES('第一1次差异备份')
 
 --第一次差异备份
 
 BACKUP DATABASE MyBakTest TO DISK='D:\Test_One_Dif.bak' WITH FORMAT,DIFFERENTIAL
 
 --对tb表插入第二条记录
 
 INSERT INTO tb_user(uname) VALUES('第二3次差异备份')
 
 --第二次差异备份
 
 BACKUP DATABASE MyBakTest TO DISK='D:\Test_Two_Dif.bak' WITH FORMAT,DIFFERENTIAL
 
 --OK.现在直接还原.完整备份+第二次差异备份.看看第二条记录在不在.
 
 GO
 
 --完整备份还原
 RESTORE DATABASE MyBackTest2 FROM DISK='D:\Test.bak' WITH REPLACE,NORECOVERY
 
 RESTORE DATABASE MyBackTest2 FROM DISK='D:\Test_one_Dif.bak' WITH RECOVERY
 
 --第二次差异备份还原
 RESTORE DATABASE MyBackTest2 FROM DISK='D:\Test_Two_Dif.bak' WITH RECOVERY

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值