master 数据库
master 数据库记录 SQL Server 系统的所有系统级别信息。它记录所有的登录帐户和系统配置设置,所有其它的数据库,其中包括数据库文件的位置。master 数据库记录 SQL Server 的初始化信息,它始终有一个可用的最新 master 数据库备份。
tempdb 数据库
tempdb 数据库保存所有的临时表和临时存储过程。它还满足任何其它的临时存储要求,例如存储 SQL Server 生成的工作表。tempdb 数据库是全局资源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。tempdb 数据库在 SQL Server 每次启动时都重新创建,因此该数据库在系统启动时总是干净的。临时表和存储过程在连接断开时自动除去,而且当系统关闭后将没有任何连接处于活动状态,因此 tempdb 数据库中没有任何内容会从 SQL Server 的一个会话保存到另一个会话。
默认情况下,在 SQL Server 在运行时 tempdb 数据库会根据需要自动增长。不过,与其它数据库不同,每次启动数据库引擎时,它会重置为其初始大小。如果为 tempdb 数据库定义的大小较小,则每次重新启动 SQL Server时,将tempdb 数据库的大小自动增加到支持工作负荷所需的大小这一工作可能会成为系统处理负荷的一部分。为避免这种开销,可以使用 ALTER DATABASE 增加 tempdb 数据库的大小。
model 数据库
model 数据库用作在系统上创建的所有数据库的模板。当发出 CREATE DATABASE 语句时,新数据库的第一部分通过复制 model 数据库中的内容创建,剩余部分由空页填充。由于 SQL Server 每次启动时都要创建 tempdb 数据库,model 数据库必须一直存在于 SQL Server 系统中。
msdb 数据库
msdb 数据库供 SQL Server 代理程序调度警报和作业以及记录操作员时使用。
Northwind 示例数据库
Northwind Traders 示例数据库包含一个名为 Northwind Traders 的虚构公司的销售数据,该公司从事世界各地的特产食品进出口贸易
pubs 示例数据库
pubs 示例数据库以一个图书出版公司为模型,用于演示 SQL Server 数据库中可用的许多选项。该数据库及其中的表经常在文档内容所介绍的示例中使用。
2009年1月22日星期四
2008年12月17日星期三
Microsoft SQL Server 2005 Service Pack 3 发布了
这次微软Launch Microsoft SQL Server 2005 Service Pack 3相当的低调,没有太多消息宣传!
简体中文x86和x64的下载地址如下:SQL Server 2005 sp3
简体中文x86和x64的下载地址如下:SQL Server 2005 sp3
2008年8月21日星期四
SQL Server 日期函数使用大全
--转换日期不同的输出格式
print convert(varchar(10),getdate(),100)--默认格式 mon dd yyyy hh:miAM(或 PM)
print convert(varchar(10),getdate(),101)--美国标准 mm/dd/yyyy
print convert(varchar(10),getdate(),102)--ANSI yy.mm.dd
print convert(varchar(10),getdate(),103)--英国/法国 dd/mm/yy
print convert(varchar(10),getdate(),104)--德国 dd.mm.yy
print convert(varchar(10),getdate(),105)--意大利 dd-mm-yy
print convert(varchar(10),getdate(),110)--美国 mm-dd-yy
print convert(varchar(10),getdate(),111)--日本 yy/mm/dd
print convert(varchar(10),getdate(),112)--ISO yymmdd
print convert(varchar(10),getdate(),121)-- yyyy-mm-dd
--一周的第一天 美国英语中默认 7 对应星期日。
select @@DATEFIRST
--一个月的第一天 DATEDIFF 返回两个指定日期之间所跨的日期和时间边界的数目
select dateadd(mm,datediff(mm,0,getdate()),0)
--本周的星期一
select dateadd(wk,datediff(wk,0,getdate()),0)
--一年的第一天
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
select cast((cast(year(getdate()) as varchar)+'-01-01') as datetime)
--季度的第一天
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
--当天的零时
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
select cast(convert(varchar(10),getdate(),121) as datetime)
--上个月的最后一天 :本月第一天减10ms.
SELECT dateadd(ms,-10,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
--本月的最后一天
select dateadd(dd,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
--显示星期几
select datename(weekday,getdate())
--如何取得某个月的天数
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))
--判断是否闰年
SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))))
when 28 then '平年' else '闰年' end
--当前季度有多少天
declare @m tinyint,@time smalldatetime
select @m=month(getdate())
select @m=case when @m between 1 and 3 then 1
when @m between 4 and 6 then 4
when @m between 7 and 9 then 7
else 10 end
select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
select datediff(day,@time,dateadd(mm,3,@time))
print convert(varchar(10),getdate(),100)--默认格式 mon dd yyyy hh:miAM(或 PM)
print convert(varchar(10),getdate(),101)--美国标准 mm/dd/yyyy
print convert(varchar(10),getdate(),102)--ANSI yy.mm.dd
print convert(varchar(10),getdate(),103)--英国/法国 dd/mm/yy
print convert(varchar(10),getdate(),104)--德国 dd.mm.yy
print convert(varchar(10),getdate(),105)--意大利 dd-mm-yy
print convert(varchar(10),getdate(),110)--美国 mm-dd-yy
print convert(varchar(10),getdate(),111)--日本 yy/mm/dd
print convert(varchar(10),getdate(),112)--ISO yymmdd
print convert(varchar(10),getdate(),121)-- yyyy-mm-dd
--一周的第一天 美国英语中默认 7 对应星期日。
select @@DATEFIRST
--一个月的第一天 DATEDIFF 返回两个指定日期之间所跨的日期和时间边界的数目
select dateadd(mm,datediff(mm,0,getdate()),0)
--本周的星期一
select dateadd(wk,datediff(wk,0,getdate()),0)
--一年的第一天
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
select cast((cast(year(getdate()) as varchar)+'-01-01') as datetime)
--季度的第一天
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
--当天的零时
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
select cast(convert(varchar(10),getdate(),121) as datetime)
--上个月的最后一天 :本月第一天减10ms.
SELECT dateadd(ms,-10,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
--本月的最后一天
select dateadd(dd,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
--显示星期几
select datename(weekday,getdate())
--如何取得某个月的天数
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))
--判断是否闰年
SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))))
when 28 then '平年' else '闰年' end
--当前季度有多少天
declare @m tinyint,@time smalldatetime
select @m=month(getdate())
select @m=case when @m between 1 and 3 then 1
when @m between 4 and 6 then 4
when @m between 7 and 9 then 7
else 10 end
select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
select datediff(day,@time,dateadd(mm,3,@time))
2008年6月28日星期六
xp_cmdshell安全使用
xp_cmdshell可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串,
并以文本行方式返回任何输出,是一个功能非常强大的扩展存贮过程。
一般情况下,xp_cmdshell对管理员来说也是不必要的,xp_cmdshell的消除不会对Server造成
任何影响。
可以将xp_cmdshell消除:
Use Master
Exec sp_dropextendedproc N'xp_cmdshell'
Go
如果需要的话,可以把xp_cmdshell恢复回来:
Use Master
Exec sp_addextendedproc N'xp_cmdshell', N'xplog70.dll'
Go
xp_cmdshell 操作系统命令外壳
这个过程是一个扩展存储过程,用于执行指定命令串,并作为文本行返回任何输出。
语法:
xp_cmdshell command_string[,no_output]
command_string 要执行的命令串
no_output 不返回命令执行的输出
说明:
在把xp_cmdshell的执行许可权授予用户时,用户将能够在Windows NT命令
外壳执行运行SQL Server(通常是本地系统)的帐号有执行特权的任何
操作系统命令。
例:
1、EXEC master..xp_cmdshell "dir *.exe"
返回可执行文件的列表
2、EXEC master..xp_cmdshell "copy d:\test1.jpg e:\" no_output
不返回输出
3、特别是执行
EXEC master..xp_cmdshell "net start awhost32"
EXEC master..xp_cmdshell "net stop awhost32"
可以启动和停止远程的PCAnywhere服务。对远程服务器操作很有帮助。
SQL Server2005可以通过界面配置屏蔽xp_cmdshell功能
并以文本行方式返回任何输出,是一个功能非常强大的扩展存贮过程。
一般情况下,xp_cmdshell对管理员来说也是不必要的,xp_cmdshell的消除不会对Server造成
任何影响。
可以将xp_cmdshell消除:
Use Master
Exec sp_dropextendedproc N'xp_cmdshell'
Go
如果需要的话,可以把xp_cmdshell恢复回来:
Use Master
Exec sp_addextendedproc N'xp_cmdshell', N'xplog70.dll'
Go
xp_cmdshell 操作系统命令外壳
这个过程是一个扩展存储过程,用于执行指定命令串,并作为文本行返回任何输出。
语法:
xp_cmdshell command_string[,no_output]
command_string 要执行的命令串
no_output 不返回命令执行的输出
说明:
在把xp_cmdshell的执行许可权授予用户时,用户将能够在Windows NT命令
外壳执行运行SQL Server(通常是本地系统)的帐号有执行特权的任何
操作系统命令。
例:
1、EXEC master..xp_cmdshell "dir *.exe"
返回可执行文件的列表
2、EXEC master..xp_cmdshell "copy d:\test1.jpg e:\" no_output
不返回输出
3、特别是执行
EXEC master..xp_cmdshell "net start awhost32"
EXEC master..xp_cmdshell "net stop awhost32"
可以启动和停止远程的PCAnywhere服务。对远程服务器操作很有帮助。
SQL Server2005可以通过界面配置屏蔽xp_cmdshell功能
表中删除重复行的SQL语句
--查询重复语句
select * from SearchLogHistory where searchkey in (select searchkey FROM SearchLogHistory GROUP BY searchkey HAVING count(*) > 1)
--删除重复语句
delete SearchLogHistory where searchkey in (select searchkey FROM SearchLogHistory GROUP BY searchkey HAVING count(*) > 1) --获取重复的字段
and logid not in(select max(logid) from SearchLogHistory group by searchkey having count(*)>1 )--排除唯一重复的ID
select * from SearchLogHistory where searchkey in (select searchkey FROM SearchLogHistory GROUP BY searchkey HAVING count(*) > 1)
--删除重复语句
delete SearchLogHistory where searchkey in (select searchkey FROM SearchLogHistory GROUP BY searchkey HAVING count(*) > 1) --获取重复的字段
and logid not in(select max(logid) from SearchLogHistory group by searchkey having count(*)>1 )--排除唯一重复的ID
订阅:
博文 (Atom)