--USE [master]
GO
/****** Object: StoredProcedure [dbo].[zsp_RestoreHeaderOnly] Script Date: 2014/1/18 13:31:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
alter proc [dbo].[zsp_RestoreHeaderOnly]
--@sql varchar(max)
@Text nvarchar(MAX), --待分拆的字符串
@Separator nvarchar(8) = ',' --数据分隔符
as
begin
/*
declare @Text nvarchar(max)
set @text = N'
d:\iFundGlobalCenter.log.1.bak,
d:\iFundGlobalCenter.log.2.bak,
d:\iFundGlobalCenter.log.3.bak,
d:\iFundGlobalCenter.log.4.bak,
d:\iFundGlobalCenter.ful.5.bak
'
exec zsp_RestoreHeaderOnly @text
*/
declare @sql nvarchar(max) = N''
declare @Table table
(
id int
,F nvarchar(256)
)
set @Text = replace(@Text,N' ',N'')
set @Text = replace(@Text,nchar(13),N'')
set @Text = replace(@Text,nchar(10),N'')
set @Text = replace(@Text,nchar(9),N'')
set @Separator = N','
DECLARE @SeparatorLen int
SET @SeparatorLen=LEN(@Separator + N'$') - 2
set @Text = replace(@Text,N' ',N'')
declare @i int
set @i = 1
WHILE CHARINDEX(@Separator,@Text )>0
BEGIN
declare @v nvarchar(max)
set @v = (LEFT(@Text ,CHARINDEX(@Separator,@Text )-1))
INSERT @Table (id,F)
select @i,@v
where rtrim(ltrim(@v)) != ''
and not exists (select 1 from @Table where F = @v)
if @@rowcount > 0
begin
set @i = @i + 1
end
SET @Text = STUFF(@Text ,1,CHARINDEX(@Separator,@Text )+@SeparatorLen,'')
END
INSERT @Table (id,F)
select @i,@Text
where rtrim(ltrim(@Text)) != ''
and not exists (select 1 from @Table where F = @Text)
select
@sql +=
N'RESTORE HEADERONLY FROM disk=''' + F + '''' + nchar(13) + nchar(10)
from
@table
select @sql
declare @ table
(
--CREATE TABLE #T(
BackupName nvarchar(256) ,
BackupDescription nvarchar(256) ,
BackupType int ,
ExpirationDate datetime ,
Compressed tinyint ,
Position int ,
DeviceType int ,
UserName nvarchar(256) ,
ServerName nvarchar(256) ,
DatabaseName nvarchar(256) ,
DatabaseVersion int ,
DatabaseCreationDate datetime ,
BackupSize numeric(38,0) ,
FirstLSN numeric(38,0) ,
LastLSN numeric(38,0) ,
CheckpointLSN numeric(38,0) ,
DatabaseBackupLSN numeric(38,0) ,
BackupStartDate datetime ,
BackupFinishDate datetime ,
SortOrder int ,
[CodePage] int ,
UnicodeLocaleId int ,
UnicodeComparisonStyle int ,
CompatibilityLevel int ,
SoftwareVendorId int ,
SoftwareVersionMajor int ,
SoftwareVersionMinor int ,
SoftwareVersionBuild int ,
MachineName nvarchar(256) ,
Flags int ,
BindingID uniqueidentifier ,
RecoveryForkID uniqueidentifier ,
Collation nvarchar(256) ,
FamilyGUID uniqueidentifier ,
HasBulkLoggedData bit ,
IsSnapshot bit ,
IsReadOnly bit ,
IsSingleUser bit ,
HasBackupChecksums bit ,
IsDamaged bit ,
BeginsLogChain bit ,
HasIncompleteMetaData bit ,
IsForceOffline bit ,
IsCopyOnly bit ,
FirstRecoveryForkID uniqueidentifier ,
ForkPointLSN numeric(38,0) NULL ,
RecoveryModel nvarchar(256) ,
DifferentialBaseLSN numeric(38,0) NULL ,
DifferentialBaseGUID uniqueidentifier ,
BackupTypeDescription nvarchar(256) ,
BackupSetGUID uniqueidentifier NULL
, [CompressedBackupSize] numeric(38,0)
, [Containment] numeric(38,0)
)
INSERT
--#1
@
EXEC
(@sql)
;with T
as
(
select
NewBackupType = iif([BackupType] in (1, 5) , 1 ,[BackupType])
, NewDifferentialBaseLSN = iif(backuptype=1, FirstLSN, DifferentialBaseLSN)
, *
from
@
--order by
-- databaseName
-- ,[FirstLSN]
)
, TT
as
(
select
MachineName_0 = MachineName
, DatabaseName_0 = DatabaseName
, NewBackupType_0 = NewBackupType
--, IsDamaged_0 = IsDamaged
--, BeginsLogChain_0 = BeginsLogChain
, LagNewBackupType = Lag(NewBackupType)
over
(
order by
MachineName
, DatabaseName
, FirstLSN
)
, LagLastLSN =
lag([LastLSN])
OVER
(
ORDER BY
NewBackupType
, [FirstLSN]
)
, FirstLSN_0 = FirstLSN
, LastLSN_0 = LastLSN
, FirstValue_FirstLSN = iif
(
backupType in (1,5)
, --FIRST_VALUE(FirstLSN)
min(FirstLSN)
OVER
(
partition by
MachineName
, databaseName
, NewDifferentialBaseLSN
order by
--MachineName
--, DatabaseName
--,
FirstLSN
)
, null
)
, DifferentialBaseLSN_0 = DifferentialBaseLSN
, BackupTypeDescription_0 = BackupTypeDescription
, BackupFinishDate_0 = BackupFinishDate
, *
from
T
)
select
ok = iif(FirstLSN = LagLastLSN, 'Y', 'N')
, *
from
TT
order by
MachineName
, databaseName
--, NewBackupType
, FirstLSN
end

SQL 2012 Restore HeaderOnly的更多相关文章

  1. SQL 2008 RAISERROR语法在SQL 2012/2014不兼容问题

    原文 旧的RAISERROR语法在SQL 2012不兼容问题 raiserror 写法: SQL 2008: raiserror 55030 'text error' SQL 2012: raiser ...

  2. SQL 2012 发布与订阅实现数据同步 图解(解决 错误22022)

    概念参见:https://msdn.microsoft.com/zh-cn/library/ms151170.aspx 推送订阅 对于推送订阅,发布服务器将更改传播到订阅服务器,而无需订阅服务器发出请 ...

  3. SQL 2012 镜像 图解(解决1418)

    概念:http://blog.chinaunix.net/uid-11231963-id-2150268.html 写的不错 1.环境准备 1.WIN7+SQL 2012 两台机器 如:10.58.8 ...

  4. SQL backup&restore

    --完整备份Backup Database NorthwindCSTo disk='G:\Backup\NorthwindCS_Full_20070908.bak' --差异备份Backup Data ...

  5. Windows 8上使用SQL 2012 Configuration Manager

    现在使用Windows 8 + Sql Server 2012,而今天想用SQL 2012 Configuraton Manager, 设置别名来访问不同的开发数据库.但发现没能找到SQL 2012 ...

  6. [读书心得]资料分页的优化,以SQL 2012的 OFFSET-FETCH为例

    这是我的文章备份,原始出处:[读书心得]资料分页的优化,以SQL 2012的 OFFSET-FETCH为例 http://www.dotblogs.com.tw/mis2000lab/archive/ ...

  7. 在SQL 2012中使用和Oracle 一样的序列

    使用过Oracle的都知道,Oracle中的自增是靠序列来完成的,在一定程度上蛮方便的.现在SQL 2012中也有序列了.来看看怎么做的吧! SQL Server 现在将序列当成一个对象来实现,创建一 ...

  8. sql server 2008 R2 备份还原到sql 2012

    从sql server 2008 r2备份的在sql server 2012中还原时一直读不到备份文件,然后把2008r2备份文件放到sql 2012的安装路径对应的Backup文件夹后可以读到了,不 ...

  9. Windows Server 2008 R2 SP1安装SQL 2012安装报错之0x858C001B

    使用Windows Server 2008 R2 SP1安装SQL 2012的时候总是报这样一个错: SQL Server Setup has encountered the following er ...

随机推荐

  1. bzoj 1305 dance跳舞

    最大流. 首先二分答案,问题转化为x首舞曲是否可行. 考虑建图,对每个人建立三个点,分别表示全体,喜欢和不喜欢. 源点向每个男生全体点连一条容量为x的边. 每个男生整体点向喜欢点连一条容量为正无穷的边 ...

  2. a版本冲刺第五天

    队名:Aruba   队员: 黄辉昌 李陈辉 林炳锋 鄢继仁 张秀锋 章  鼎 运动会这几天两位同学准备比赛也确实比较忙,两位同学又刚好有事回家去了,由于之前git解决一次冲突后,远程我们还不能很好地 ...

  3. php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)

    虽然通过nginx accesslog可以记录用户访问某个接口或者网页所消耗的时间,但是不能清晰地追踪到具体哪个位置或者说函数慢,所以通过php-fpm慢日志,slowlog设置可以让我们很好的看见哪 ...

  4. 大二在CSDN的博客整理

    001我为什么想写博客 控制台版2048 version_1.0总结 022 囚徒困境中的均衡-----从一篇经典论文说起 021 模拟退火算法学习(一)-----求解最短连通路径 020 小记一次网 ...

  5. Alpha阶段第五次Scrum Meeting

    情况简述 Alpha阶段第五次Scrum Meeting 敏捷开发起始时间 2016/10/26 00:00 敏捷开发终止时间 2016/10/27 00:00 会议基本内容摘要 汇报各自完成的任务, ...

  6. PMD宣传文案

    队名:Clover 李烈争 031402614 林昊斌 031402615 李坤隆 031402612 林瑞斌 031402617 解宇虹 031402338 林 锦 031402339 目录 一. ...

  7. python下ssh的简单实现

    python下的ssh都需要借助第三方模块paramiko来实现,在使用前需要手动安装. 一.python实现ssh (1) linux下的ssh登录 root@ubuntu:~# ssh morra ...

  8. UOJ#67. 新年的毒瘤

    传送门 练习一下Tarjan的模板. 求一下割点,然后加个约束条件判一下特殊点,剩下的就是所求点. //UOJ 67 //by Cydiater //2016.10.27 #include <i ...

  9. BootStrap的一个标准框架的内容解释——来源于bootstrap官网

    <!DOCTYPE html><!--HTML5的定义--><html lang="zh-cn"> <head> <meta ...

  10. Thinkphp中controller控制器根据curl函数请求数据

    public function member(){ $url="http://aitequn.tjnit.com/UserAction_findAllUser"; $ch =cur ...