zoukankan      html  css  js  c++  java
  • SQL Server 数据库管理常用的SQL和TSQL语句

    1. --按姓氏笔画排序:
    2. SELECT*FROM TableName ORDERBY CustomerName COLLATE Chinese_PRC_Stroke_ci_as
    3. --数据库加密:
    4. SELECT encrypt('原始密码')
    5. SELECT pwdencrypt('原始密码')
    6. SELECT pwdcompare('原始密码','加密后密码')=1--相同;否则不相同 encrypt('原始密码')
    7. SELECT pwdencrypt('原始密码')
    8. SELECT pwdcompare('原始密码','加密后密码')=1--相同;否则不相同
    9. --取回表中字段:
    10. DECLARE @list VARCHAR(1000),@SQLNVARCHAR(1000)
    11. SELECT @list=@list+','+b.nameFROM sysobjects a,syscolumns b WHERE a.id=b.id and a.name='表A'
    12. SET @SQL='select '+RIGHT(@list,LEN(@list)-1)+' from 表A'
    13. EXEC(@SQL)
    14. --查看硬盘分区:
    15. EXEC master..xp_fixeddrives
    16. --比较A,B表是否相等:
    17. IF(SELECTCHECKSUM_AGG(BINARY_CHECKSUM(*))FROM A)
    18. =
    19. (SELECTCHECKSUM_AGG(BINARY_CHECKSUM(*))FROM B)
    20. PRINT'相等'
    21. ELSE
    22. PRINT'不相等'
    23. --杀掉所有的事件探察器进程:
    24. DECLARE hcforeach CURSORGLOBALFORSELECT'kill '+RTRIM(spid)FROM master.dbo.sysprocesses
    25. WHERE program_name IN('SQL profiler',N'SQL 事件探查器')
    26. EXEC sp_msforeach_worker '?'
    27. --记录搜索:
    28. 开头到N条记录
    29. SELECTTOP N *FROM
    30. -------------------------------
    31. N到M条记录(要有主索引ID)
    32. SELECTTOP M-N *FROMWHERE ID in (SELECTTOP M ID FROM)ORDERBY ID DESC
    33. ----------------------------------
    34. N到结尾记录
    35. SELECTTOP N *FROMORDERBY ID DESC
    36. --如何修改数据库的名称:
    37. SP_RENAMEDB'old_name', 'new_name'
    38. --获取当前数据库中的所有用户表
    39. SELECT Name FROM sysobjects WHERE xtype='u' and status>=0
    40. --获取某一个表的所有字段
    41. SELECT name FROM syscolumns WHERE id=OBJECT_ID('表名')
    42. --查看与某一个表相关的视图、存储过程、函数
    43. SELECT a.*FROM sysobjects a, syscomments b WHERE a.id= b.id and b.TEXT like '%表名%'
    44. --查看当前数据库中所有存储过程
    45. SELECT name AS 存储过程名称 FROM sysobjects WHERE xtype='P'
    46. --查询用户创建的所有数据库
    47. SELECT*FROM master..sysdatabases D WHERE sid not in(SELECT sid FROM master..sysloginsWHERE name='sa')
    48. 或者
    49. SELECT dbid, name ASDB_NAMEFROM master..sysdatabasesWHERE sid <> 0x01
    50. --查询某一个表的字段和数据类型
    51. SELECT column_name,data_type FROM information_schema.columns
    52. WHERE table_name ='表名'
    53. [n].[标题]:
    54. SELECT*FROM TableName ORDERBY CustomerName
    55. [n].[标题]:
    56. SELECT*FROM TableName ORDERBY CustomerName
    57. --查看数据库的版本
    58. SELECT@@VERSION
    59. --查看数据库所在机器操作系统参数
    60. EXEC master..XP_MSVER
    61. --查看数据库启动的参数
    62. SP_CONFIGURE
    63. --查看数据库启动时间
    64. SELECTCONVERT(VARCHAR(30),login_time,120)FROM master..sysprocessesWHERE spid=1
    65. 查看数据库服务器名和实例名
    66. PRINT'Server Name...............: '+CONVERT(VARCHAR(30),@@SERVERNAME)
    67. PRINT'Instance..................: '+CONVERT(VARCHAR(30),@@SERVICENAME)
    68. --查看所有数据库名称及大小
    69. SP_HELPDB
    70. 重命名数据库用的SQL
    71. SP_RENAMEDB'old_dbname', 'new_dbname'
    72. --查看所有数据库用户登录信息
    73. SP_HELPLOGINS
    74. 查看所有数据库用户所属的角色信息
    75. SP_HELPSRVROLEMEMBER
    76. 修复迁移服务器时孤立用户时,可以用的fix_orphan_user脚本或者LoneUser过程
    77. 更改某个数据对象的用户属主
    78. SP_CHANGEOBJECTOWNER[@objectname =]'object', [@newowner =]'owner'
    79. 注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
    80. 把一台服务器上的数据库用户登录信息备份出来可以用add_login_to_aserver脚本
      ---------------------------------------------------------------

      1. --查看链接服务器
      2. SP_HELPLINKEDSRVLOGIN
      3. 查看远端数据库用户登录信息
      4. SP_HELPREMOTELOGIN
      5. --查看某数据库下某个数据对象的大小
      6. SP_SPACEUSED @objname
      7. 还可以用sp_toptables过程看最大的N(默认为50)个表
      8. 查看某数据库下某个数据对象的索引信息
      9. SP_HELPINDEX @objname
      10. 还可以用SP_NChelpindex过程查看更详细的索引情况
      11. SP_NChelpindex @objname
      12. CLUSTERED索引是把记录按物理顺序排列的,索引占的空间比较少。
      13. 对键值DML操作十分频繁的表我建议用非CLUSTERED索引和约束,FILLFACTOR参数都用默认值。
      14. 查看某数据库下某个数据对象的的约束信息
      15. SP_HELPCONSTRAINT @objname
      16. --查看数据库里所有的存储过程和函数
      17. USE @database_name
      18. SP_STORED_PROCEDURES
      19. 查看存储过程和函数的源代码
      20. SP_HELPTEXT'@procedure_name'
      21. 查看包含某个字符串@STR的数据对象名称
      22. SELECTDISTINCTOBJECT_NAME(id)FROM syscomments WHERETEXT like '%@str%'
      23. 创建加密的存储过程或函数在AS前面加WITH ENCRYPTION参数
      24. 解密加密过的存储过程和函数可以用sp_decrypt过程
      25. --查看数据库里用户和进程的信息
      26. SP_WHO
      27. 查看SQL Server数据库里的活动用户和进程的信息
      28. SP_WHO'active'
      29. 查看SQL Server数据库里的锁的情况
      30. SP_LOCK
      31. 进程号1--50是SQL Server系统内部用的,进程号大于50的才是用户的连接进程.
      32. spid是进程编号,dbid是数据库编号,objid是数据对象编号
      33. 查看进程正在执行的SQL语句
      34. DBCC inputbuffer ()
      35. 推荐大家用经过改进后的sp_who3过程可以直接看到进程运行的SQL语句
      36. sp_who3
      37. 检查死锁用sp_who_lock过程
      38. sp_who_lock
      39. --收缩数据库日志文件的方法
      40. 收缩简单恢复模式数据库日志,收缩后@database_name_log的大小单位为M
      41. BACKUPLOG @database_name WITH no_log
      42. DBCC shrinkfile (@database_name_log, 5)
      43. --分析SQL Server SQL 语句的方法:
      44. SETSTATISTICSTIME{ON|OFF}
      45. SETSTATISTICS io {ON|OFF}
      46. 图形方式显示查询执行计划
      47. 在查询分析器->查询->显示估计的评估计划(D)-Ctrl-L 或者点击工具栏里的图形
      48. 文本方式显示查询执行计划
      49. SET showplan_all {ON|OFF}
      50. SET showplan_text {ON|OFF}
      51. SETSTATISTICS profile {ON|OFF}
      52. --出现不一致错误时,NT事件查看器里出3624号错误,修复数据库的方法
      53. 先注释掉应用程序里引用的出现不一致性错误的表,然后在备份或其它机器上先恢复然后做修复操作
      54. ALTERDATABASE[@error_database_name]SET single_user
      55. 修复出现不一致错误的表
      56. DBCC checktable('@error_table_name',repair_allow_data_loss)
      57. 或者可惜选择修复出现不一致错误的小型数据库名
      58. DBCC checkdb('@error_database_name',repair_allow_data_loss)
      59. ALTERDATABASE[@error_database_name]SET multi_user
      60. CHECKDB 有3个参数:
      61. repair_allow_data_loss 包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,
      62. 以及删除已损坏的文本对象,这些修复可能会导致一些数据丢失。
      63. 修复操作可以在用户事务下完成以允许用户回滚所做的更改。
      64. 如果回滚修复,则数据库仍会含有错误,应该从备份进行恢复。
      65. 如果由于所提供修复等级的缘故遗漏某个错误的修复,则将遗漏任何取决于该修复的修复。
      66. 修复完成后,请备份数据库。
      67. repair_fast 进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。
      68. 这些修复可以很快完成,并且不会有丢失数据的危险。
      69. repair_rebuild 执行由 repair_fast 完成的所有修复,包括需要较长时间的修复(如重建索引)。
      70. 执行这些修复时不会有丢失数据的危险。
      /*
      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 WHERE
          t2.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;

    下载

    一只站在树上的鸟儿,从来不会害怕树枝会断裂,因为它相信的不是树枝,而是它自己的翅膀。与其每天担心未来,不如努力做好现在。
  • 相关阅读:
    Python 生成器
    Python 切片
    Visual Studio Code编辑器使用
    linux常用命令
    python selenium学习笔记
    selenium+chrome driver 报错处理 (Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform=Windows NT 10.0.17763 x86_64)
    python+uiautomator2+fiddler 自动化测试学习总结
    我的第一篇博客
    计算机网络差错控制基本方法
    计算机网络复习笔记(简略)
  • 原文地址:https://www.cnblogs.com/rhythmK/p/1559437.html
Copyright © 2011-2022 走看看