分享常用SQL语句!

j273558569 2012-01-05 11:01:26
我先来!
...全文
137 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tanguo_inHunan 2012-01-05
  • 打赏
  • 举报
回复
狗屁一个, 也来分享咯...
j273558569 2012-01-05
  • 打赏
  • 举报
回复
大家都分享下撒。
j273558569 2012-01-05
  • 打赏
  • 举报
回复
有好东西的,朋友们。
不要藏着掖着啊。
j273558569 2012-01-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hero__stone 的回复:]
楼主辛苦了
这些精华帖都能找到
[/Quote]
。。。
我平时收集的哈。
好汉坡 2012-01-05
  • 打赏
  • 举报
回复
楼主辛苦了
这些精华帖都能找到
j273558569 2012-01-05
  • 打赏
  • 举报
回复
--查询版本信息
select
serverproperty('productversion'),--版本号
serverproperty('productlevel'),--补丁号
serverproperty('edition') --版本

--清空表缓存
checkpoint
dbcc freeproccache
dbcc dropcleanbuffers

--清空日志文件
exec('DUMP TRANSACTION [CNPC_Dev] WITH NO_LOG')
exec('BACKUP LOG [CNPC_Dev] WITH NO_LOG')
exec('DBCC SHRINKDATABASE([CNPC_Dev])')
exec('EXEC sp_dboption ''CNPC_Dev'',''autoshrink'',''TRUE''')

--修改列名
EXEC sp_rename 'System_LogManage.LoginCount', 'MoudleClickCount', 'COLUMN'

--修改字段类型
alter Table TankerMaintenanceDesc
alter column WorkExperienceRecords numeric(17, 2)

--新增字段
alter Table DeviceProblem
add ProblemStatus nvarchar(50) null

--删除字段
alter Table DeviceProblem
drop column ProblemImage

--测试
set statistics profile on
set statistics profile off

--测试读写次数
set statistics io on
set statistics io off

--测试查询时间
set statistics time on
set statistics time off

--查询当前标示
DBCC CHECKIDENT ('TableName', NORESEED)

--自动标识信息: 当前标识值 '5',当前列值 0。
DBCC CHECKIDENT('TableName', RESEED, 0)

--重置自动标示信息
DBCC CHECKIDENT ('TableName')

--操作一条记录,操作所有记录
set rowcount 1 --操作一条记录
set rowcount 0 --操作所有记录

--查询表结构
select dbo.sysobjects.name as Table_name,
dbo.syscolumns.name as Column_name,
dbo.systypes.name as Type_name,
dbo.systypes.length as Type_length,
columnproperty(dbo.syscolumns.id,dbo.syscolumns.name,'precision') as Column_lengh,
case dbo.syscolumns.isnullable when 1 then 'Null' when 0 then 'Not Null' end as ColumnIsNull
from dbo.syscolumns inner join dbo.sysobjects
on dbo.syscolumns.id = dbo.sysobjects.id
left join dbo.systypes
on dbo.syscolumns.xtype = dbo.systypes.xusertype
where
dbo.sysobjects.name in ('BusinessUnit') and
--dbo.systypes.name = 'image' and
(dbo.sysobjects.xtype = 'u') and
(not (dbo.sysobjects.name like 'dtproperties'))

--查询所有表的行数,及总行数
create table #T
(
[name] nvarchar(255),
rows bigint
)
declare @Name nvarchar(255),@Sql nvarchar(4000)
declare TName CURSOR FOR
select [name] from sysobjects where xtype = 'U'
open TName
fetch NEXT from TName
into @Name
while @@FETCH_STATUS = 0
begin
set @Sql='INSERT INTO #T ([name],rows) SELECT '''+@name+''' AS name, COUNT(1) AS row FROM '+@name
exec(@Sql)
fetch NEXT from TName into @name
end
close TName
deallocate TName
select [name] as 表名 , rows as 行数 FROM #T
order by rows desc
select Sum(rows) as 总行数 from #T
drop table #T

--给分组列编序号
---------
--A 1--
--A 2--
--B 1--
--B 2--
--B 3--
--C 1--
---------
CAST(ROW_NUMBER() OVER (PARTITION BY [name] ORDER BY [id]) AS int)
---------
--A 1--
--A 1--
--B 2--
--B 2--
--B 2--
--C 3--
---------
CAST(DENSE_RANK() OVER (ORDER BY [id]) AS int)


--按两个字段分组统计数量,再按第一个字段分组统计数量(避免子查询)
--使用COUNT(DISTINCT [Datetime])
SELECT [id], COUNT(DISTINCT [Datetime])
FROM #T
GROUP BY [id]


--动态拼接sql,传入传出参数
--语法:
sp_executesql
[@stmt = ] stmt[ {, [@params=] N'@parameter_name data_type [ [ OUT [ PUT ][,...n]' }
{, [ @param1 = ] 'value1' [ ,...n ] }
]
--用例:
declare @sql nvarchar(100)
declare @a int
declare @b int
--传出参数:
set @sql = 'set @x = 3'
exec sp_executesql @sql,N'@x as int output',@x = @b output
select @b
--传入参数
set @sql = 'select @x '
exec sp_executesql @sql,N'@x as int ',@x = 2
--传入传出参数
set @sql = ' set @y = (select @x) '
exec sp_executesql @sql,N'@x as int ,@y as int output',@x = @b,@y = @b output
select @b











haitao 2012-01-05
  • 打赏
  • 举报
回复
--查询所有表的行数,及总行数;硬盘字节数,当前内存占用数

--查询所有库的硬盘字节数,当前内存占用数

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧