﻿<?xml version="1.0" encoding="utf-8"?><model xmlns="http://schemas.serviceml.org/smlif/2007/02"><identity><name>urn:uuid:96fe1236-abf6-4a57-b54d-e9baab394fd1</name><baseURI>http://documentcollection/</baseURI></identity><definitions xmlns:sfc="http://schemas.microsoft.com/sqlserver/sfc/serialization/2007/08" xmlns="http://schemas.serviceml.org/smlif/2007/02"><document><docinfo><aliases><alias>/system/schema/DMF</alias></aliases><sfc:version DomainVersion="3" /></docinfo><data><xs:schema targetNamespace="http://schemas.microsoft.com/sqlserver/DMF/2007/08" xmlns:sfc="http://schemas.microsoft.com/sqlserver/sfc/serialization/2007/08" xmlns:sml="http://schemas.serviceml.org/sml/2007/02" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"><xs:element name="Policy"><xs:complexType><xs:sequence><xs:any namespace="http://schemas.microsoft.com/sqlserver/DMF/2007/08" processContents="skip" minOccurs="0" maxOccurs="unbounded" /></xs:sequence></xs:complexType></xs:element><xs:element name="ObjectSet"><xs:complexType><xs:sequence><xs:any namespace="http://schemas.microsoft.com/sqlserver/DMF/2007/08" processContents="skip" minOccurs="0" maxOccurs="unbounded" /></xs:sequence></xs:complexType></xs:element><xs:element name="Condition"><xs:complexType><xs:sequence><xs:any namespace="http://schemas.microsoft.com/sqlserver/DMF/2007/08" processContents="skip" minOccurs="0" maxOccurs="unbounded" /></xs:sequence></xs:complexType></xs:element><xs:element name="TargetSet"><xs:complexType><xs:sequence><xs:any namespace="http://schemas.microsoft.com/sqlserver/DMF/2007/08" processContents="skip" minOccurs="0" maxOccurs="unbounded" /></xs:sequence></xs:complexType></xs:element><xs:element name="TargetSetLevel"><xs:complexType><xs:sequence><xs:any namespace="http://schemas.microsoft.com/sqlserver/DMF/2007/08" processContents="skip" minOccurs="0" maxOccurs="unbounded" /></xs:sequence></xs:complexType></xs:element></xs:schema></data></document></definitions><instances xmlns:sfc="http://schemas.microsoft.com/sqlserver/sfc/serialization/2007/08" xmlns="http://schemas.serviceml.org/smlif/2007/02"><document><docinfo><aliases><alias>/PolicyStore/Policy/Database Backup File Check Policy</alias></aliases><sfc:version DomainVersion="3" /></docinfo><data><DMF:Policy xmlns:DMF="http://schemas.microsoft.com/sqlserver/DMF/2007/08" xmlns:sfc="http://schemas.microsoft.com/sqlserver/sfc/serialization/2007/08" xmlns:sml="http://schemas.serviceml.org/sml/2007/02" xmlns:xs="http://www.w3.org/2001/XMLSchema"><DMF:Parent><sfc:Reference sml:ref="true"><sml:Uri>/PolicyStore</sml:Uri></sfc:Reference></DMF:Parent><DMF:PolicyCondition><sfc:Reference sml:ref="true"><sml:Uri>/PolicyStore/Condition/Database Backup File Check Condition</sml:Uri></sfc:Reference></DMF:PolicyCondition><DMF:PolicyObjectSet><sfc:Reference sml:ref="true"><sml:Uri>/PolicyStore/ObjectSet/Database Backup File Check Policy__ObjectSet</sml:Uri></sfc:Reference></DMF:PolicyObjectSet><DMF:Name type="string">Database Backup File Check Policy</DMF:Name><DMF:Description type="string" /><DMF:Condition type="string">Database Backup File Check Condition</DMF:Condition><DMF:ObjectSet type="string">Database Backup File Check Policy_ObjectSet</DMF:ObjectSet><DMF:RootCondition type="string" /><DMF:PolicyCategory type="string" /><DMF:Enabled type="boolean">false</DMF:Enabled><DMF:AutomatedPolicyEvaluationMode type="AutomatedPolicyEvaluationMode">None</DMF:AutomatedPolicyEvaluationMode><DMF:ScheduleUid type="guid">00000000-0000-0000-0000-000000000000</DMF:ScheduleUid><DMF:HelpText type="string" /><DMF:HelpLink type="string" /><DMF:ActiveEndDate type="dateTime">0001-01-01T00:00:00</DMF:ActiveEndDate><DMF:ActiveEndTimeOfDay type="long">0</DMF:ActiveEndTimeOfDay><DMF:ActiveStartDate type="dateTime">0001-01-01T00:00:00</DMF:ActiveStartDate><DMF:ActiveStartTimeOfDay type="long">0</DMF:ActiveStartTimeOfDay><DMF:FrequencyInterval type="int">0</DMF:FrequencyInterval><DMF:FrequencyRecurrenceFactor type="int">0</DMF:FrequencyRecurrenceFactor><DMF:FrequencyRelativeIntervals type="FrequencyRelativeIntervals" /><DMF:FrequencySubDayInterval type="int">0</DMF:FrequencySubDayInterval><DMF:FrequencySubDayTypes type="FrequencySubDayTypes">Unknown</DMF:FrequencySubDayTypes><DMF:FrequencyTypes type="FrequencyTypes">Unknown</DMF:FrequencyTypes><DMF:Schedule type="string" /></DMF:Policy></data></document><document><docinfo><aliases><alias>/PolicyStore/ObjectSet/Database Backup File Check Policy__ObjectSet</alias></aliases><sfc:version DomainVersion="3" /></docinfo><data><DMF:ObjectSet xmlns:DMF="http://schemas.microsoft.com/sqlserver/DMF/2007/08" xmlns:sfc="http://schemas.microsoft.com/sqlserver/sfc/serialization/2007/08" xmlns:sml="http://schemas.serviceml.org/sml/2007/02" xmlns:xs="http://www.w3.org/2001/XMLSchema"><DMF:TargetSets><sfc:Collection><sfc:Reference sml:ref="true"><sml:Uri>/PolicyStore/ObjectSet/Database Backup File Check Policy__ObjectSet/TargetSet/Server_/Database</sml:Uri></sfc:Reference></sfc:Collection></DMF:TargetSets><DMF:Parent><sfc:Reference sml:ref="true"><sml:Uri>/PolicyStore</sml:Uri></sfc:Reference></DMF:Parent><DMF:Name type="string">Database Backup File Check Policy_ObjectSet</DMF:Name><DMF:Facet type="string">Database</DMF:Facet></DMF:ObjectSet></data></document><document><docinfo><aliases><alias>/PolicyStore/Condition/Database Backup File Check Condition</alias></aliases><sfc:version DomainVersion="3" /></docinfo><data><DMF:Condition xmlns:DMF="http://schemas.microsoft.com/sqlserver/DMF/2007/08" xmlns:sfc="http://schemas.microsoft.com/sqlserver/sfc/serialization/2007/08" xmlns:sml="http://schemas.serviceml.org/sml/2007/02" xmlns:xs="http://www.w3.org/2001/XMLSchema"><DMF:Parent><sfc:Reference sml:ref="true"><sml:Uri>/PolicyStore</sml:Uri></sfc:Reference></DMF:Parent><DMF:Expression type="string">&lt;Operator&gt;&lt;?char 13?&gt;
  &lt;TypeClass&gt;Bool&lt;/TypeClass&gt;&lt;?char 13?&gt;
  &lt;OpType&gt;EQ&lt;/OpType&gt;&lt;?char 13?&gt;
  &lt;Count&gt;2&lt;/Count&gt;&lt;?char 13?&gt;
  &lt;Function&gt;&lt;?char 13?&gt;
    &lt;TypeClass&gt;Numeric&lt;/TypeClass&gt;&lt;?char 13?&gt;
    &lt;FunctionType&gt;ExecuteSql&lt;/FunctionType&gt;&lt;?char 13?&gt;
    &lt;ReturnType&gt;Numeric&lt;/ReturnType&gt;&lt;?char 13?&gt;
    &lt;Count&gt;2&lt;/Count&gt;&lt;?char 13?&gt;
    &lt;Constant&gt;&lt;?char 13?&gt;
      &lt;TypeClass&gt;String&lt;/TypeClass&gt;&lt;?char 13?&gt;
      &lt;ObjType&gt;System.String&lt;/ObjType&gt;&lt;?char 13?&gt;
      &lt;Value&gt;Numeric&lt;/Value&gt;&lt;?char 13?&gt;
    &lt;/Constant&gt;&lt;?char 13?&gt;
    &lt;Constant&gt;&lt;?char 13?&gt;
      &lt;TypeClass&gt;String&lt;/TypeClass&gt;&lt;?char 13?&gt;
      &lt;ObjType&gt;System.String&lt;/ObjType&gt;&lt;?char 13?&gt;
      &lt;Value&gt;&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
SET NOCOUNT ON&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
DECLARE @FileName varchar(255)&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
DECLARE @File_Exists int&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
DECLARE @dbname sysname&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
SET @File_Exists = 0 --initiliaze to failure in order to capture dbs that have never had a backup taken&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
SELECT @dbname = DB_NAME()&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
--get list of files to check&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
DECLARE FileNameCsr CURSOR&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
READ_ONLY&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
FOR &amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	SELECT physical_device_name&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	FROM msdb..backupmediafamily bmf&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	INNER JOIN msdb..backupset bms ON bmf.media_set_id = bms.media_set_id&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	INNER JOIN master..sysdatabases sd ON bms.database_name = DB_NAME()&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	AND bms.backup_start_date = (SELECT max(backup_start_date) FROM [msdb]..[backupset] b2&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
									WHERE bms.database_name = b2.database_name and b2.type = ''D'')&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	WHERE sd.name NOT IN (''Pubs'',''tempdb'',''Northwind'', ''Adventureworks'')&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
BEGIN TRY&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	OPEN FileNameCsr&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	FETCH NEXT FROM FileNameCsr INTO @FileName&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	WHILE (@@fetch_status &amp;lt;&amp;gt; -1)&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	BEGIN&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
		IF (@@fetch_status &amp;lt;&amp;gt; -2)&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
		BEGIN&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
			PRINT @FileName&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
			EXEC master.dbo.xp_fileexist @FileName, @File_Exists OUT&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
		END&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	FETCH NEXT FROM FileNameCsr INTO @FileName&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	END&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
	&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
END TRY&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
BEGIN CATCH&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
    SELECT&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
        ERROR_NUMBER() AS ErrorNumber&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
        ,ERROR_SEVERITY() AS ErrorSeverity&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
        ,ERROR_STATE() AS ErrorState&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
        ,ERROR_PROCEDURE() AS ErrorProcedure&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
        ,ERROR_LINE() AS ErrorLine&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
        ,ERROR_MESSAGE() AS ErrorMessage;&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
END CATCH&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
CLOSE FileNameCsr&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
DEALLOCATE FileNameCsr&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
--what we want to return&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
SELECT @File_Exists&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
GO&amp;lt;?char 13?&amp;gt;&lt;?char 13?&gt;
&lt;/Value&gt;&lt;?char 13?&gt;
    &lt;/Constant&gt;&lt;?char 13?&gt;
  &lt;/Function&gt;&lt;?char 13?&gt;
  &lt;Constant&gt;&lt;?char 13?&gt;
    &lt;TypeClass&gt;Numeric&lt;/TypeClass&gt;&lt;?char 13?&gt;
    &lt;ObjType&gt;System.Double&lt;/ObjType&gt;&lt;?char 13?&gt;
    &lt;Value&gt;1&lt;/Value&gt;&lt;?char 13?&gt;
  &lt;/Constant&gt;&lt;?char 13?&gt;
&lt;/Operator&gt;</DMF:Expression><DMF:Name type="string">Database Backup File Check Condition</DMF:Name><DMF:Description type="string" /><DMF:Facet type="string">Database</DMF:Facet></DMF:Condition></data></document><document><docinfo><aliases><alias>/PolicyStore/ObjectSet/Database Backup File Check Policy__ObjectSet/TargetSet/Server_/Database</alias></aliases><sfc:version DomainVersion="3" /></docinfo><data><DMF:TargetSet xmlns:DMF="http://schemas.microsoft.com/sqlserver/DMF/2007/08" xmlns:sfc="http://schemas.microsoft.com/sqlserver/sfc/serialization/2007/08" xmlns:sml="http://schemas.serviceml.org/sml/2007/02" xmlns:xs="http://www.w3.org/2001/XMLSchema"><DMF:Levels><sfc:Collection><sfc:Reference sml:ref="true"><sml:Uri>/PolicyStore/ObjectSet/Database Backup File Check Policy__ObjectSet/TargetSet/Server_/Database/TargetSetLevel/Server_/Database</sml:Uri></sfc:Reference></sfc:Collection></DMF:Levels><DMF:Parent><sfc:Reference sml:ref="true"><sml:Uri>/PolicyStore/ObjectSet/Database Backup File Check Policy__ObjectSet</sml:Uri></sfc:Reference></DMF:Parent><DMF:TargetTypeSkeleton type="string">Server/Database</DMF:TargetTypeSkeleton><DMF:Enabled type="boolean">true</DMF:Enabled></DMF:TargetSet></data></document><document><docinfo><aliases><alias>/PolicyStore/ObjectSet/Database Backup File Check Policy__ObjectSet/TargetSet/Server_/Database/TargetSetLevel/Server_/Database</alias></aliases><sfc:version DomainVersion="3" /></docinfo><data><DMF:TargetSetLevel xmlns:DMF="http://schemas.microsoft.com/sqlserver/DMF/2007/08" xmlns:sfc="http://schemas.microsoft.com/sqlserver/sfc/serialization/2007/08" xmlns:sml="http://schemas.serviceml.org/sml/2007/02" xmlns:xs="http://www.w3.org/2001/XMLSchema"><DMF:Parent><sfc:Reference sml:ref="true"><sml:Uri>/PolicyStore/ObjectSet/Database Backup File Check Policy__ObjectSet/TargetSet/Server_/Database</sml:Uri></sfc:Reference></DMF:Parent><DMF:TargetTypeSkeleton type="string">Server/Database</DMF:TargetTypeSkeleton><DMF:LevelName type="string">Database</DMF:LevelName><DMF:Condition type="string" /></DMF:TargetSetLevel></data></document></instances></model>
