1. --USE [master]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[zsp_RestoreHeaderOnly] Script Date: 2014/1/18 13:31:29 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. alter proc [dbo].[zsp_RestoreHeaderOnly]
  9. --@sql varchar(max)
  10. @Text nvarchar(MAX), --待分拆的字符串
  11. @Separator nvarchar(8) = ',' --数据分隔符
  12. as
  13. begin
  14. /*
  15. declare @Text nvarchar(max)
  16. set @text = N'
  17. d:\iFundGlobalCenter.log.1.bak,
  18. d:\iFundGlobalCenter.log.2.bak,
  19. d:\iFundGlobalCenter.log.3.bak,
  20. d:\iFundGlobalCenter.log.4.bak,
  21. d:\iFundGlobalCenter.ful.5.bak
  22. '
  23. exec zsp_RestoreHeaderOnly @text
  24. */
  25. declare @sql nvarchar(max) = N''
  26. declare @Table table
  27. (
  28. id int
  29. ,F nvarchar(256)
  30. )
  31. set @Text = replace(@Text,N' ',N'')
  32. set @Text = replace(@Text,nchar(13),N'')
  33. set @Text = replace(@Text,nchar(10),N'')
  34. set @Text = replace(@Text,nchar(9),N'')
  35. set @Separator = N','
  36. DECLARE @SeparatorLen int
  37. SET @SeparatorLen=LEN(@Separator + N'$') - 2
  38. set @Text = replace(@Text,N' ',N'')
  39. declare @i int
  40. set @i = 1
  41. WHILE CHARINDEX(@Separator,@Text )>0
  42. BEGIN
  43. declare @v nvarchar(max)
  44. set @v = (LEFT(@Text ,CHARINDEX(@Separator,@Text )-1))
  45. INSERT @Table (id,F)
  46. select @i,@v
  47. where rtrim(ltrim(@v)) != ''
  48. and not exists (select 1 from @Table where F = @v)
  49. if @@rowcount > 0
  50. begin
  51. set @i = @i + 1
  52. end
  53. SET @Text = STUFF(@Text ,1,CHARINDEX(@Separator,@Text )+@SeparatorLen,'')
  54. END
  55. INSERT @Table (id,F)
  56. select @i,@Text
  57. where rtrim(ltrim(@Text)) != ''
  58. and not exists (select 1 from @Table where F = @Text)
  59. select
  60. @sql +=
  61. N'RESTORE HEADERONLY FROM disk=''' + F + '''' + nchar(13) + nchar(10)
  62. from
  63. @table
  64. select @sql
  65. declare @ table
  66. (
  67. --CREATE TABLE #T(
  68. BackupName nvarchar(256) ,
  69. BackupDescription nvarchar(256) ,
  70. BackupType int ,
  71. ExpirationDate datetime ,
  72. Compressed tinyint ,
  73. Position int ,
  74. DeviceType int ,
  75. UserName nvarchar(256) ,
  76. ServerName nvarchar(256) ,
  77. DatabaseName nvarchar(256) ,
  78. DatabaseVersion int ,
  79. DatabaseCreationDate datetime ,
  80. BackupSize numeric(38,0) ,
  81. FirstLSN numeric(38,0) ,
  82. LastLSN numeric(38,0) ,
  83. CheckpointLSN numeric(38,0) ,
  84. DatabaseBackupLSN numeric(38,0) ,
  85. BackupStartDate datetime ,
  86. BackupFinishDate datetime ,
  87. SortOrder int ,
  88. [CodePage] int ,
  89. UnicodeLocaleId int ,
  90. UnicodeComparisonStyle int ,
  91. CompatibilityLevel int ,
  92. SoftwareVendorId int ,
  93. SoftwareVersionMajor int ,
  94. SoftwareVersionMinor int ,
  95. SoftwareVersionBuild int ,
  96. MachineName nvarchar(256) ,
  97. Flags int ,
  98. BindingID uniqueidentifier ,
  99. RecoveryForkID uniqueidentifier ,
  100. Collation nvarchar(256) ,
  101. FamilyGUID uniqueidentifier ,
  102. HasBulkLoggedData bit ,
  103. IsSnapshot bit ,
  104. IsReadOnly bit ,
  105. IsSingleUser bit ,
  106. HasBackupChecksums bit ,
  107. IsDamaged bit ,
  108. BeginsLogChain bit ,
  109. HasIncompleteMetaData bit ,
  110. IsForceOffline bit ,
  111. IsCopyOnly bit ,
  112. FirstRecoveryForkID uniqueidentifier ,
  113. ForkPointLSN numeric(38,0) NULL ,
  114. RecoveryModel nvarchar(256) ,
  115. DifferentialBaseLSN numeric(38,0) NULL ,
  116. DifferentialBaseGUID uniqueidentifier ,
  117. BackupTypeDescription nvarchar(256) ,
  118. BackupSetGUID uniqueidentifier NULL
  119. , [CompressedBackupSize] numeric(38,0)
  120. , [Containment] numeric(38,0)
  121. )
  122. INSERT
  123. --#1
  124. @
  125. EXEC
  126. (@sql)
  127. ;with T
  128. as
  129. (
  130. select
  131. NewBackupType = iif([BackupType] in (1, 5) , 1 ,[BackupType])
  132. , NewDifferentialBaseLSN = iif(backuptype=1, FirstLSN, DifferentialBaseLSN)
  133. , *
  134. from
  135. @
  136. --order by
  137. -- databaseName
  138. -- ,[FirstLSN]
  139. )
  140. , TT
  141. as
  142. (
  143. select
  144. MachineName_0 = MachineName
  145. , DatabaseName_0 = DatabaseName
  146. , NewBackupType_0 = NewBackupType
  147. --, IsDamaged_0 = IsDamaged
  148. --, BeginsLogChain_0 = BeginsLogChain
  149. , LagNewBackupType = Lag(NewBackupType)
  150. over
  151. (
  152. order by
  153. MachineName
  154. , DatabaseName
  155. , FirstLSN
  156. )
  157. , LagLastLSN =
  158. lag([LastLSN])
  159. OVER
  160. (
  161. ORDER BY
  162. NewBackupType
  163. , [FirstLSN]
  164. )
  165. , FirstLSN_0 = FirstLSN
  166. , LastLSN_0 = LastLSN
  167. , FirstValue_FirstLSN = iif
  168. (
  169. backupType in (1,5)
  170. , --FIRST_VALUE(FirstLSN)
  171. min(FirstLSN)
  172. OVER
  173. (
  174. partition by
  175. MachineName
  176. , databaseName
  177. , NewDifferentialBaseLSN
  178. order by
  179. --MachineName
  180. --, DatabaseName
  181. --,
  182. FirstLSN
  183. )
  184. , null
  185. )
  186. , DifferentialBaseLSN_0 = DifferentialBaseLSN
  187. , BackupTypeDescription_0 = BackupTypeDescription
  188. , BackupFinishDate_0 = BackupFinishDate
  189. , *
  190. from
  191. T
  192. )
  193. select
  194. ok = iif(FirstLSN = LagLastLSN, 'Y', 'N')
  195. , *
  196. from
  197. TT
  198. order by
  199. MachineName
  200. , databaseName
  201. --, NewBackupType
  202. , FirstLSN
  203. 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. Android 适配知识点

    转载:https://gold.xitu.io/post/58451c1d8e450a006c0f1c74 支持多种屏幕 Android 可在各种具有不同屏幕尺寸和密度的设备上运行.对于 应用,And ...

  2. javascript中怎么判断对象{}为空

    有时候通过AJAX方法调用返回的是一个JSON对象,而这个对象可能在开发过程中会没有数据是一个空{}. JavaScript判断object/json 是否为空,可以使用jQuery的isEmptyO ...

  3. 用gulp打包带参数资源做法与asp.net/java项目结合的自动构建方案探讨

    先探讨方案,后续再实现. gulp打包前端教程配置:http://www.cnblogs.com/EasonJim/p/6209951.html 可能存在以下场景: 1.整个服务端采用接口的形式暴露给 ...

  4. 2次使用fork避免产生僵尸进程和不去处理SIGCHLD信号

    1.如下代码所示 #include <unistd.h> #include <sys/types.h> #include <unistd.h> int main(i ...

  5. Traditional Language Model

    Traditional Language Model通常用于回答下述问题: How likely is a string of English words good English ? \(p_{LM ...

  6. elasticsearch curl operation

    Elastic Search API Index.简单的介绍了使用Elastic Search 如何建立索引. ElasticSearch-API-Index 索引创建API允许初始化一个索引.Ela ...

  7. 10月24日上午PHP面向对象

    面向对象 程序分为两种,一种是面向过程的,另一种是面向对象的.之前的学的都是面向过程的,按部就班的一步一步的按照顺序往下走. 面向对象: 1.什么叫做对象 一切皆为对象(一个对象由一组属性和有权对这些 ...

  8. SDL 截图、录像、录像播放

    截图 使用sdl很简单,视频显示窗口大小,不是视频分辨率大小 int i = Sdl.SDL_SaveBMP(surfacePtr, path); if(i != 0) { MessageBox.Sh ...

  9. centos6.5升级python为2.7

    今天线上服务器全部升级python环境为python-2.7.6的环境,我采用的方法是ansible+shell,代码如下,友提,Python-2.7.6.tgz.setuptools-14.3.1. ...

  10. SQL Server 2012复制教程以及复制的几种模式

    简介 SQL Server中的复制(Replication)是SQL Server高可用性的核心功能之一,在我看来,复制指的并不仅仅是一项技术,而是一些列技术的集合,包括从存储转发数据到同步数据到维护 ...