SQL Server 数据库部分常用语句小结(二)
9. 查询备份还原数据库的进度。
select command
   ,percent_complete
   ,est_time_to_go=convert(varchar,(estimated_completion_time/3600000))+' hour, '
                  +convert(varchar,(estimated_completion_time)/60000)+' min, '
                  +convert(varchar,(estimated_completion_time)/1000)+' sec'
   ,start_time=convert(char(16),start_time,120)
   ,est_completion_time=convert(char(16),dateadd(second,estimated_completion_time/1000,getdate()),120)
   ,running_time=convert(varchar,((datediff(s,start_time,getdate()))/3600))+' hour, '
                +convert(varchar,(datediff(s,start_time,getdate()))/60)+' min, '
                +convert(varchar,(datediff(s,start_time,getdate())))+' sec'
   ,s.text
   from sys.dm_exec_requests r
   cross apply sys.dm_exec_sql_text(r.sql_handle) s
   where r.command in ('BACKUP DATABASE','RESTORE DATABASE','BACKUP LOG','RESTORE LOG','DbccFilesCompact','DbccSpaceReclaim')
10. 删除指定表内的某个统计信息(例如,有时候,我们在AlwaysOn可用性组的副库上执行某个查询,会提示某个统计信息缺失)。
报错信息
消息 2767,级别 16,状态 1,过程 sp_table_statistics2_rowset,第 105 行
无法在系统目录中找到统计信息 'XXXXXX'。
语法
DROP STATISTICS table.statistics_name | view.statistics_name [ ,...n ]
这个命令在副库上执行,如果提示 无法对 统计信息 '‘XXXXXXX’' 执行 删除,因为它不存在,或者您没有所需的权限。
此时 可转到主库上尝试执行。
11. SQL Server 2012 关于序列 的基本操作【在对应DB下执行】。
SELECT * FROM sys.sequences
--  获取下一个值  
SELECT NEXT VALUE FOR [dbo].[自定义的序列名称];
--  重置为1  
ALTER SEQUENCE [dbo].[自定义的序列名称] RESTART WITH 1 ;
12. 自增列(IDENTITY(1,1))的数据导入。
2个表都有自增列(IDENTITY(1,1)),怎么才能导入数据呢?
     例如,我想将含有IDENTITY(1,1)列的大表QQ_CampTask_T1,Rename成一张旧表QQ_CampTask,接下来还要把其中部分数据导入到新建的QQ_CampTask_T1 中,新产生的表还是有IDENTITY(1,1),此时导入数据,这个列就会报错。
    消息 8101,级别 16,状态 1,第 1 行
    仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表QQ_CampTask_T1'中的标识列指定显式值。
解决方案 
    SET IDENTITY_INSERT QQ_CampTask_T1【表名】 on 
    此效用就在同一个回话中有效,其它不行。另外 还需要特别注意的是:一定要写明 列名。
例如:
SET IDENTITY_INSERT QQ_CampTask_T1 on 
  insert into QQ_CampTask_T1 ([ID],[CreateTime])
  select [ID],[CreateTime] from QQ_CampTask
13. 修Table的改列名。
EXEC sp_rename '表名.[原列名]', '新列名', 'column'
14. 赋予指定账户查看执行计划的权限。
GRANT SHOWPLAN TO [XXX_test] ---账号是XXX_test;在指定数据库下执行
15. SQL语句执行耗费资源统计分析。
set statistics profile on 
set statistics io on 
set statistics time on 
go 
--写SQL语句的地方
------------
go 
set statistics profile off 
set statistics io off 
set statistics time off
16. 增加约束:如果表的某一列没有约束,而要在此列增加约束。
类似命令 如下:
ALTER TABLE [dbo].[表明] ADD  DEFAULT ((默认值)) FOR [列名]
17. sqlserver 服务器更改主机名后,需要做一些操作,不然维护计划 以及订阅发布都会有问题。有时修改计算机名后,执行select @@servername仍返回原来的计算机名,表示"实例"并没有随着修改。
USE master;
GO
IF SERVERPROPERTY('servername')<>@@SERVERNAME
 BEGIN
   DECLARE  @server sysname;
   SET @server=@@SERVERNAME;
   EXEC sp_dropserver @server=@server;
   SET @server=CAST(SERVERPROPERTY('servername')AS sysname );
   EXEC sp_addserver @server=@server,@local='LOCAL';
 END
GO
(我们重启一下服务.OK)
18. 出现性能瓶颈时,执行以下代码,检查瓶颈代码。
sp_lock
DBCC INPUTBUFFER(XXX) ---XXX 出现多次的spid
19. 查询表的大小
sp_spaceused 'Rel_OrderItem'
20. 字符与ASCII码相互转化,有的时候要对数据清理,所以有必要了解一下。
例如 Char("9") tab(水平制表符)
    Char("10") 换行
    Char("11") tab(垂直制表符)
    Char("12") 换页
    Char("13") 回车 chr(13)&chr(10) 回车和换行的组合
    Char("32") 空格 SPACE
(1)获取字符的ASCII码 ASCII
     ASCII码是对字符的标准编码。要获取字符的ASCII码可以通过ASCII函数来实现。
    语法:ASCII(espression)--这里的expression是一个返回char或varchar数据类型的表达式,ASCII函数仅对表达式最左侧的字符返回ASCII码值。
例如:select ASCII('f')    --输出 102
    (2)获取ASCII码对应的字符 Char
     语法:char(integer_expression)
     例如:select char(102)    -- 输出f
SQL Server 数据库部分常用语句小结(二)的更多相关文章
- SQL Server 数据库部分常用语句小结(三)
		
21.SQL运行Log的读取 .EXEC xp_readerrorlog 0,1,null,null,'开始时间','结束时间' 22. Alwayson 状况及传输情况监控 SELECT ar.re ...
 - SQL Server 数据库部分常用语句小结(一)
		
1. 查询某存储过程的访问情况 SELECT TOP 1000 db_name(d.database_id) as DBName, s.name as 存储名字, s.type_desc as 存储类 ...
 - 在 SQL Server 数据库的 WHERE 语句中使用子查询
		
这是关于子查询语句的一系列文章中的第三篇.在这篇文章中我们将讨论WHERE语句中的子查询语句.其他的文章讨论了其他语句中的子查询语句. 本次课程中的所有例子都是基于Microsoft SQL Serv ...
 - SQL Server性能监控常用语句
		
.查找目前SQL Server所执行的SQL语法,并展示资源情况: SELECT s2.dbid , DB_NAME(s2.dbid) AS [数据库名] , --s1.sql_handle , ( ...
 - 查询SQL SERVER 数据库版本号脚本语句
		
数据库直接执行此语句即可select @@version 示例: Microsoft SQL Server 2014 - 12.0.2000.8 (X64) Feb 20 2014 20:04:2 ...
 - SQL Server数据库存在判断语句及系统表简介  转
		
Transact-SQL Exists Sentences--判断数据库是否存在IF EXISTS(SELECT * FROM master.sysdatabases WHERE name=N'库名' ...
 - SQL Server数据库存在判断语句及系统表简介
		
Transact-SQL Exists Sentences--判断数据库是否存在IF EXISTS(SELECT * FROM master.sysdatabases WHERE name=N'库名' ...
 - Sql Server 数据库用Transact-SQL语句创建链接服务器
		
1.在查询编辑器中,输入以下 Transact-SQL 命令以便链接到名为 SRVR002\ACCTG 的 SQL Server 实例: USE [master] GO EXEC master.dbo ...
 - SQL SERVER数据库中DDL语句
		
一 修改表列名 EXEC sp_rename 'table_name.[字段旧名]', '字段新名' , 'COLUMN'; 二 修改列类型 ALTER TABLE table_name ALTER ...
 
随机推荐
- [Swift]LeetCode459. 重复的子字符串 | Repeated Substring Pattern
			
Given a non-empty string check if it can be constructed by taking a substring of it and appending mu ...
 - Python—day10 函数的参数分类
			
一.实参与形参 1.形参:定义函数,在括号内声明的变量名,用来接受外界传来的值 def fn(形参们): pass def fn(a,b,c):# 形参就是考虑实参的值, ...
 - 【MongoDb入门】15分钟让你敢说自己会用MongoDB了
			
一.MongDB是什么呢,我该如何下手呢? MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. 如果小伙伴你的机器上还没有安装Mon ...
 - 《HelloGitHub月刊》第 06 期
			
前言 <HelloGitHub>月刊做到第06期了(已经做了6个月了),在GitHub上获得了100+的stars,虽然不多,但是我很知足了,说明有人觉得这个项目是有价值的.同时园子中的' ...
 - centos7下vim8.1的编译安装教程
			
之前安装YouCompleteMe的时候遇到vim版本不兼容的问题,看网上说是需要将vim版本提升到8.0及以上,然后就开始安装最新版本的vim,安装过程中的遇到了不少问题主要集中在配置方面和缺少插件 ...
 - 精读《正则 ES2018》
			
1. 引言 本周精读的文章是 regexp-features-regular-expressions. 这篇文章介绍了 ES2018 正则支持的几个重要特性: Lookbehind assertion ...
 - 补习系列(3)-springboot中的几种scope
			
目标 了解HTTP 请求/响应头及常见的属性: 了解如何使用SpringBoot处理头信息 : 了解如何使用SpringBoot处理Cookie : 学会如何对 Session 进行读写: 了解如何在 ...
 - JDBC事务与保存点  JDBC简介(七)
			
事务简介 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 事务是必须满足4个条件(ACID) 事务的原子性( A ...
 - Ansible快速上手
			
ansible 是通过python 语言开发的自动化运维工具,可以实现批量系统设置.批量程序部署.批量执行命令等功能 下面是基于docker使用ansible测试示例,可以让新手快速上手使用 一.新建 ...
 - Spring Boot 2.x (八):日志框架的使用
			
我们为啥要用日志? 最初我们开始接触Java的时候,我们通常会使用System.out.println()将我们想要知道的信息打印到控制台. 但是,如果在服务器上我们去运行我们的Java程序,这个时候 ...