- --按姓氏笔画排序:
- SELECT*FROM TableName ORDERBY CustomerName COLLATE Chinese_PRC_Stroke_ci_as
- --数据库加密:
- SELECT encrypt('原始密码')
- SELECT pwdencrypt('原始密码')
- SELECT pwdcompare('原始密码','加密后密码')=1--相同;否则不相同 encrypt('原始密码')
- SELECT pwdencrypt('原始密码')
- SELECT pwdcompare('原始密码','加密后密码')=1--相同;否则不相同
- --取回表中字段:
- DECLARE @list VARCHAR(1000),@SQLNVARCHAR(1000)
- SELECT @list=@list+','+b.nameFROM sysobjects a,syscolumns b WHERE a.id=b.id and a.name='表A'
- SET @SQL='select '+RIGHT(@list,LEN(@list)-1)+' from 表A'
- EXEC(@SQL)
- --查看硬盘分区:
- EXEC master..xp_fixeddrives
- --比较A,B表是否相等:
- IF(SELECTCHECKSUM_AGG(BINARY_CHECKSUM(*))FROM A)
- =
- (SELECTCHECKSUM_AGG(BINARY_CHECKSUM(*))FROM B)
- PRINT'相等'
- ELSE
- PRINT'不相等'
- --杀掉所有的事件探察器进程:
- DECLARE hcforeach CURSORGLOBALFORSELECT'kill '+RTRIM(spid)FROM master.dbo.sysprocesses
- WHERE program_name IN('SQL profiler',N'SQL 事件探查器')
- EXEC sp_msforeach_worker '?'
- --记录搜索:
- 开头到N条记录
- SELECTTOP N *FROM 表
- -------------------------------
- N到M条记录(要有主索引ID)
- SELECTTOP M-N *FROM 表 WHERE ID in (SELECTTOP M ID FROM 表)ORDERBY ID DESC
- ----------------------------------
- N到结尾记录
- SELECTTOP N *FROM 表 ORDERBY ID DESC
- --如何修改数据库的名称:
- SP_RENAMEDB'old_name', 'new_name'
- --获取当前数据库中的所有用户表
- SELECT Name FROM sysobjects WHERE xtype='u' and status>=0
- --获取某一个表的所有字段
- SELECT name FROM syscolumns WHERE id=OBJECT_ID('表名')
- --查看与某一个表相关的视图、存储过程、函数
- SELECT a.*FROM sysobjects a, syscomments b WHERE a.id= b.id and b.TEXT like '%表名%'
- --查看当前数据库中所有存储过程
- SELECT name AS 存储过程名称 FROM sysobjects WHERE xtype='P'
- --查询用户创建的所有数据库
- SELECT*FROM master..sysdatabases D WHERE sid not in(SELECT sid FROM master..sysloginsWHERE name='sa')
- 或者
- SELECT dbid, name ASDB_NAMEFROM master..sysdatabasesWHERE sid <> 0x01
- --查询某一个表的字段和数据类型
- SELECT column_name,data_type FROM information_schema.columns
- WHERE table_name ='表名'
- [n].[标题]:
- SELECT*FROM TableName ORDERBY CustomerName
- [n].[标题]:
- SELECT*FROM TableName ORDERBY CustomerName
- --查看数据库的版本
- SELECT@@VERSION
- --查看数据库所在机器操作系统参数
- EXEC master..XP_MSVER
- --查看数据库启动的参数
- SP_CONFIGURE
- --查看数据库启动时间
- SELECTCONVERT(VARCHAR(30),login_time,120)FROM master..sysprocessesWHERE spid=1
- 查看数据库服务器名和实例名
- PRINT'Server Name...............: '+CONVERT(VARCHAR(30),@@SERVERNAME)
- PRINT'Instance..................: '+CONVERT(VARCHAR(30),@@SERVICENAME)
- --查看所有数据库名称及大小
- SP_HELPDB
- 重命名数据库用的SQL
- SP_RENAMEDB'old_dbname', 'new_dbname'
- --查看所有数据库用户登录信息
- SP_HELPLOGINS
- 查看所有数据库用户所属的角色信息
- SP_HELPSRVROLEMEMBER
- 修复迁移服务器时孤立用户时,可以用的fix_orphan_user脚本或者LoneUser过程
- 更改某个数据对象的用户属主
- SP_CHANGEOBJECTOWNER[@objectname =]'object', [@newowner =]'owner'
- 注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
- 把一台服务器上的数据库用户登录信息备份出来可以用add_login_to_aserver脚本
---------------------------------------------------------------- --查看链接服务器
- SP_HELPLINKEDSRVLOGIN
- 查看远端数据库用户登录信息
- SP_HELPREMOTELOGIN
- --查看某数据库下某个数据对象的大小
- SP_SPACEUSED @objname
- 还可以用sp_toptables过程看最大的N(默认为50)个表
- 查看某数据库下某个数据对象的索引信息
- SP_HELPINDEX @objname
- 还可以用SP_NChelpindex过程查看更详细的索引情况
- SP_NChelpindex @objname
- CLUSTERED索引是把记录按物理顺序排列的,索引占的空间比较少。
- 对键值DML操作十分频繁的表我建议用非CLUSTERED索引和约束,FILLFACTOR参数都用默认值。
- 查看某数据库下某个数据对象的的约束信息
- SP_HELPCONSTRAINT @objname
- --查看数据库里所有的存储过程和函数
- USE @database_name
- SP_STORED_PROCEDURES
- 查看存储过程和函数的源代码
- SP_HELPTEXT'@procedure_name'
- 查看包含某个字符串@STR的数据对象名称
- SELECTDISTINCTOBJECT_NAME(id)FROM syscomments WHERETEXT like '%@str%'
- 创建加密的存储过程或函数在AS前面加WITH ENCRYPTION参数
- 解密加密过的存储过程和函数可以用sp_decrypt过程
- --查看数据库里用户和进程的信息
- 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
- --收缩数据库日志文件的方法
- 收缩简单恢复模式数据库日志,收缩后@database_name_log的大小单位为M
- BACKUPLOG @database_name WITH no_log
- DBCC shrinkfile (@database_name_log, 5)
- --分析SQL Server SQL 语句的方法:
- SETSTATISTICSTIME{ON|OFF}
- SETSTATISTICS io {ON|OFF}
- 图形方式显示查询执行计划
- 在查询分析器->查询->显示估计的评估计划(D)-Ctrl-L 或者点击工具栏里的图形
- 文本方式显示查询执行计划
- SET showplan_all {ON|OFF}
- SET showplan_text {ON|OFF}
- SETSTATISTICS profile {ON|OFF}
- --出现不一致错误时,NT事件查看器里出3624号错误,修复数据库的方法
- 先注释掉应用程序里引用的出现不一致性错误的表,然后在备份或其它机器上先恢复然后做修复操作
- ALTERDATABASE[@error_database_name]SET single_user
- 修复出现不一致错误的表
- DBCC checktable('@error_table_name',repair_allow_data_loss)
- 或者可惜选择修复出现不一致错误的小型数据库名
- DBCC checkdb('@error_database_name',repair_allow_data_loss)
- ALTERDATABASE[@error_database_name]SET multi_user
- CHECKDB 有3个参数:
- repair_allow_data_loss 包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,
- 以及删除已损坏的文本对象,这些修复可能会导致一些数据丢失。
- 修复操作可以在用户事务下完成以允许用户回滚所做的更改。
- 如果回滚修复,则数据库仍会含有错误,应该从备份进行恢复。
- 如果由于所提供修复等级的缘故遗漏某个错误的修复,则将遗漏任何取决于该修复的修复。
- 修复完成后,请备份数据库。
- repair_fast 进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。
- 这些修复可以很快完成,并且不会有丢失数据的危险。
- repair_rebuild 执行由 repair_fast 完成的所有修复,包括需要较长时间的修复(如重建索引)。
- 执行这些修复时不会有丢失数据的危险。
/*
getdate() 获取当前时间,
datename(datepart,date) 返回datepart指定字符串格式的时间
datepart(datepart,date) 返回datepart指定字整形格式的时间
*/
select getdate(), datename(mm,getdate()), datepart(mm,getdate())
/*isdate(str) 为真返回1 为假则为0 */
select isdate('2009/1/02')
select ceiling(12.3) --取最大整数
select floor(12.3) --取最小整数
select len(getdate()) --获取字符串长度
select left('abcdef',4),right(123456,4) --left 获取字符串从左开始的指定长度
-----right 获取字符串从右边开始的指定长度
select substring('abcdefghijklmn' ,2 ,6) --bcdefg 获取指定起点跟终点的长度
select replicate('wk',3) --按照指定次数复制字符串
select ltrim( ' 123') , rtrim('add ') --取出字符串左,右空格
select reverse('abcde') --edcba 获取一个反序的字符串
--------------****数据库时间格式****----------------
select dateadd(year,2,'2004-10-17') --加两年
select datediff(day,'2006-10-10','2006-12-18') -- 判断天差
分类拼接字符串
---1、 建立临时表-- SELECT * INTO temp_CombineBuying FROM (SELECT b.ProviderTypeShortName,a.ProviderGUID,b.ProviderTypeCode FROM p_provider2Type a INNER JOIN p_ProviderType b ON a.ProviderTypeCode=b.ProviderTypeCode) t ----- 2、拼接字符串 --- SELECT ProviderGUID, stuff( (select ','+convert(varchar(25), ProviderTypeShortName) from temp_CombineBuying as t2 WHEREt2.ProviderGUID=t1.ProviderGUID FOR XML PATH('')), 1, 1, '' ) as ProviderTypeNameList INTO p_ProviderTypeNameList FROM temp_CombineBuying AS t1 GROUP BY ProviderGUID ----- 3、清除临时表 DROP TABLE temp_CombineBuying; DROP TABLE p_ProviderTypeNameList;
下载