常用SQL语句.sql 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /***********断开某个数据库所有连接***********/
  2. USE master
  3. GO
  4. -- 立即设置数据为单用户模式(IMMEDIATE会断开所有连接);
  5. ALTER DATABASE [DBName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
  6. GO
  7. /*
  8. --查看是否还有用户连接
  9. SELECT * FROM sys.sysprocesses WHERE DB_NAME([dbid])='DBName'
  10. 或者:
  11. SELECT * FROM master..sysprocesses WHERE DB_NAME([dbid])='DBName'
  12. */
  13. GO
  14. --再设置回多用户模式即可;
  15. ALTER DATABASE [DBName] SET MULTI_USER
  16. GO
  17. /***********判断表,字段,视图是否存在***********/
  18. -- 1.判断表是否存在;
  19. IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'表名') AND type in (N'U'))
  20. PRINT '表不存在'
  21. ELSE
  22. PRINT '表存在'
  23. -- 示例:
  24. IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[client]') AND type in (N'U'))
  25. BEGIN
  26. PRINT '表不存在'
  27. END
  28. ELSE
  29. BEGIN
  30. PRINT '表已存在'
  31. END
  32. /**************************************************************************************************/
  33. -- 2.判断字段是否存在;
  34. IF NOT EXISTS(select name FROM syscolumns WHERE id=object_id('表名') AND name='字段名')
  35. PRINT '表字段不存在'
  36. ELSE
  37. PRINT '表字段已存在'
  38. IF NOT EXISTS(select * FROM syscolumns WHERE id=object_id('表名') AND name='字段名')
  39. PRINT '表字段不存在'
  40. ELSE
  41. PRINT '表字段已存在'
  42. -- 示例:
  43. IF NOT EXISTS (SELECT name FROM syscolumns WHERE id=object_id('client') AND name='i1d')
  44. BEGIN
  45. PRINT '表字段不存在'
  46. ALTER TABLE [dbo].[client] ADD [FolderNames] [nvarchar](max) null
  47. END
  48. ELSE
  49. BEGIN
  50. PRINT '表字段已存在'
  51. ALTER TABLE [dbo].[client] ALTER COLUMN [FolderNames] [nvarchar](max) null
  52. END
  53. -- 示例:
  54. IF NOT EXISTS (SELECT * FROM syscolumns WHERE id=object_id('client') AND name='id')
  55. BEGIN
  56. PRINT '表字段不存在'
  57. END
  58. ELSE
  59. BEGIN
  60. PRINT '表字段已存在'
  61. END
  62. /**************************************************************************************************/
  63. -- 3.判断视图是否存在;
  64. IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'视图名'))
  65. PRINT '视图不存在'
  66. ELSE
  67. PRINT '视图已存在'
  68. -- 示例:
  69. IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'digitalview'))
  70. PRINT '视图不存在'
  71. ELSE
  72. PRINT '视图已存在'
  73. --示例:
  74. IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[digitalview]'))
  75. BEGIN
  76. DROP VIEW [dbo].[digitalview]
  77. EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[digitalview] as select
  78. id,
  79. name1,
  80. name2,
  81. taoxiname,
  82. taoxijiage,
  83. waiter5,
  84. time8,
  85. waiter7,
  86. time9,
  87. waiter4,
  88. time10,
  89. status4,
  90. status6,
  91. status5,
  92. txtype,
  93. (SELECT SUM(CAST(money AS float)) AS Expr1 FROM dbo.dindanbukuan WHERE (bz = ''选片二销'') AND (id = dbo.dindan.id)) AS money2,
  94. (SELECT SUM(CONVERT(float, ps)) AS Expr2 FROM dbo.dindansp WHERE (id = dbo.dindan.id)) AS ps,
  95. (SELECT SUM(CONVERT(float, zs)) AS Expr3 FROM dbo.dindansp AS dindansp_1 WHERE (id = dbo.dindan.id)) AS zs
  96. FROM dbo.dindan'
  97. END
  98. /**************************************************************************************************/
  99. -- 4.判断字段长度是否符合长度;
  100. IF NOT EXISTS(select * FROM syscolumns WHERE id=object_id('表名') AND name='字段名' and length <> 48)
  101. PRINT '表字段长度不符合要求'
  102. ELSE
  103. PRINT '表字段长度已符合要求'
  104. -- 示例:
  105. IF NOT EXISTS (SELECT * FROM syscolumns WHERE id=object_id('client') AND name='id' and length <= 48)
  106. PRINT '表字段长度不符合要求'
  107. ELSE
  108. PRINT '表字段长度已符合要求'
  109. /**************************************************************************************************/
  110. -- 5.判断字段长度是否符合长度;
  111. IF NOT EXISTS (select object_name(id)表名, c.name 字段名, t.name 数据类型, c.prec 长度 from syscolumns c inner join systypes t on c.xusertype=t.xusertype where objectproperty(id,'IsUserTable')=1 and id=object_id('表名') and c.name = '字段名' and t.name = '数据类型')
  112. PRINT '字段类型不符合要求'
  113. ELSE
  114. PRINT '字段类型已符合要求'
  115. -- 示例:
  116. IF NOT EXISTS (select c.name from syscolumns c inner join systypes t on c.xusertype=t.xusertype where id=object_id('client') and c.name = 'id' and t.name = 'nvarchar')
  117. PRINT '字段类型不符合要求'
  118. ELSE
  119. PRINT '字段类型已符合要求'
  120. /*
  121. 开启CLR功能:
  122. 在SQL查询窗口中,分步执行以下命令行;
  123. */
  124. use [db]
  125. --1.设置数据库的Owner为sa用户;
  126. exec sp_changedbowner 'sa'
  127. go
  128. --2.设置数据库为可信任模式;
  129. alter database [db] set trustworthy on;
  130. --3.开启clr;
  131. exec sp_configure 'show advanced options', '1';
  132. go
  133. reconfigure;
  134. go
  135. exec sp_configure 'clr enabled', '1'
  136. go
  137. reconfigure;
  138. --如果执行失败,就执行'reconfigure with override'
  139. go
  140. exec sp_configure 'show advanced options', '1'
  141. go