<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>t-sql &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/t-sql/</link>
	<description>Feed of posts on WordPress.com tagged "t-sql"</description>
	<pubDate>Wed, 25 Nov 2009 12:22:34 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[SQL SERVER - Comma Separated Values (CSV) from Table Column]]></title>
<link>http://blog.sqlauthority.com/2009/11/25/sql-server-comma-separated-values-csv-from-table-column/</link>
<pubDate>Wed, 25 Nov 2009 01:30:18 +0000</pubDate>
<dc:creator>pinaldave</dc:creator>
<guid>http://blog.sqlauthority.com/2009/11/25/sql-server-comma-separated-values-csv-from-table-column/</guid>
<description><![CDATA[I use following script very often and I realized that I have never shared this script on this blog b]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;">I use following script very often and I realized that I have never shared this script on this blog before. Creating Comma Separated Values (CSV) from Table Column is a very common task, and we all do this many times a day. Let us see the example that I use frequently and its output.</p>
<p style="text-align:justify;"><code style="font-size:12px;"><span style="color:blue;">USE </span><span style="color:black;">AdventureWorks<br />
GO<br />
</span><span style="color:green;">-- Check Table Column<br />
</span><span style="color:blue;">SELECT </span><span style="color:black;">Name<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">HumanResources.Shift<br />
GO<br />
</span><span style="color:green;">-- Get CSV values<br />
</span><span style="color:blue;">SELECT </span><span style="color:magenta;">SUBSTRING</span><span style="color:gray;">(<br />
(</span><span style="color:blue;">SELECT </span><span style="color:red;">',' </span><span style="color:gray;">+ </span><span style="color:black;">s.Name<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">HumanResources.Shift s<br />
</span><span style="color:blue;">ORDER BY </span><span style="color:black;">s.Name<br />
</span><span style="color:blue;">FOR </span><span style="color:black;">XML PATH</span><span style="color:gray;">(</span><span style="color:red;">''</span><span style="color:gray;">)),</span><span style="color:black;">2</span><span style="color:gray;">,</span><span style="color:black;">200000</span><span style="color:gray;">) </span><span style="color:blue;">AS </span><span style="color:black;">CSV<br />
GO </span></code></p>
<p style="text-align:justify;">I consider XML as the best solution in terms of code and performance. Further, as I totally prefer this option, I am not even including the linka to my other articles, where I have described other options.</p>
<p style="text-align:justify;"><span style="color:black;"><img class="alignnone" src="http://www.pinaldave.com/bimg/csvxml.jpg" alt="" width="316" height="470" /><br />
</span></p>
<p style="text-align:justify;">Do you use any other method to resolve this issue? Can you find any significant difference in performance between these options? Please leave your comment here.</p>
<p style="text-align:justify;">Reference : <strong>Pinal Dave (</strong><a href="http://blog.sqlauthority.com/" target="_blank"><strong>http://blog.SQLAuthority.com</strong></a><strong>)</strong></p>
<p style="text-align:justify;">
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL Server Code Name]]></title>
<link>http://bhaveshgpatel.wordpress.com/2009/11/24/sql-server-code-name/</link>
<pubDate>Tue, 24 Nov 2009 06:32:46 +0000</pubDate>
<dc:creator>Bhavesh Patel</dc:creator>
<guid>http://bhaveshgpatel.wordpress.com/2009/11/24/sql-server-code-name/</guid>
<description><![CDATA[SQL Server Code Name Yesterday, I came across a very interesting question on one of the SQL Servers ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>SQL Server Code Name</strong></p>
<p>Yesterday, I came across a very interesting question on one of the SQL Servers Online Forums.</p>
<p><span style="color:#ff0000;"><strong>Question</strong> – What is the code name of SQL Server 2005?</span></p>
<p>Well I knew that the Microsoft gives code names to it products when they are in developmental stages. But I never came across the code name for SQL Serves!</p>
<p>So I did some research on Net to find code name of all the SQL Server Release till date. They are listed below.</p>
<table border="2" cellspacing="0" cellpadding="2" width="479">
<tbody>
<tr>
<td width="357" valign="bottom"><strong>SQL   Server Release</strong></td>
<td width="220" valign="bottom"><strong>Project   Code Name</strong></td>
</tr>
<tr>
<td width="357" valign="bottom">SQL Server   6.0</td>
<td width="220" valign="bottom">SQL95</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Server Enterprise Manager</td>
<td width="220" valign="bottom">Starfighter</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Server 6.5</td>
<td width="220" valign="bottom">Hydra</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Server 7.0</td>
<td width="220" valign="bottom">Sphinx</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Server 7.0</td>
<td width="220" valign="bottom">Plato</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Server 2000 (32-bit)</td>
<td width="220" valign="bottom">Shiloh</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Server 2000 (64-bit)</td>
<td width="220" valign="bottom">Liberty</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Server Reporting Services</td>
<td width="220" valign="bottom">Rosetta</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Server 2005</td>
<td width="220" valign="bottom">Yukon</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Server 2005 Mobile Edition</td>
<td width="220" valign="bottom">Laguna</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Server 2008</td>
<td width="220" valign="bottom">Katmai /   Akadia</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Report Designer 2.0</td>
<td width="220" valign="bottom">Blue</td>
</tr>
<tr>
<td width="357" valign="bottom">SQL   Server 2008R2</td>
<td width="220" valign="bottom">Killimanjaro</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p>Good Luck!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL SERVER - Interesting Observation - TOP 100 PERCENT and ORDER BY]]></title>
<link>http://blog.sqlauthority.com/2009/11/24/sql-server-interesting-observation-top-100-percent-and-order-by/</link>
<pubDate>Tue, 24 Nov 2009 01:30:03 +0000</pubDate>
<dc:creator>pinaldave</dc:creator>
<guid>http://blog.sqlauthority.com/2009/11/24/sql-server-interesting-observation-top-100-percent-and-order-by/</guid>
<description><![CDATA[Today we will go over a very simple, but interesting subject. The following error is quite common if]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;">Today we will go over a very simple, but interesting subject. The following error is quite common if you use ORDER BY while creating any view:</p>
<p style="text-align:justify;"><span style="color:#ff0000;">Msg 1033, Level 15, State 1, Procedure something, Line 5<br />
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.</span></p>
<p style="text-align:justify;">The error also explains the solution for the same – use of TOP. I have seen developers and DBAs using TOP very causally when they have to use the ORDER BY clause. Theoretically, there is no need of ORDER BY in the view at all. All the ordering should be done outside the view and view should just have the SELECT statement in it.</p>
<p style="text-align:justify;">It was quite common that to save this extra typing by including ordering inside of the view. At several instances developers want a complete resultset and for the same they include TOP 100 PERCENT along with ORDER BY, assuming that this will simulate the SELECT statement with ORDER BY.</p>
<p style="text-align:justify;">In SQL Server 2008, this behavior is corrected by ignoring the ORDER BY clause when TOP 100% is used. Let us see a quick script for the same.</p>
<p style="text-align:justify;"><code style="font-size:12px;"><span style="color:blue;">USE </span><span style="color:black;">AdventureWorks<br />
GO</span></code></p>
<p style="text-align:justify;"><code style="font-size:12px;"><span style="color:black;"> </span><span style="color:green;">-- SELECT from Table Without TOP or ORDER BY<br />
</span><span style="color:blue;">SELECT </span><span style="color:gray;">*<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">HumanResources.Shift<br />
GO<br />
</span><span style="color:green;">-- SELECT from Table With TOP and ORDER BY DESC<br />
</span><span style="color:blue;">SELECT TOP </span><span style="color:black;">100 </span><span style="color:blue;">PERCENT </span><span style="color:gray;">*<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">HumanResources.Shift<br />
</span><span style="color:blue;">ORDER BY </span><span style="color:black;">ShiftID </span><span style="color:blue;">DESC<br />
</span><span style="color:black;">GO<br />
</span><span style="color:green;">-- Create View with same as above statement<br />
</span><span style="color:blue;">IF </span><span style="color:gray;">EXISTS (</span><span style="color:blue;">SELECT </span><span style="color:gray;">* </span><span style="color:blue;">FROM </span><span style="color:black;">sys.views<br />
</span><span style="color:blue;">WHERE </span><span style="color:magenta;">OBJECT_ID </span><span style="color:blue;">= </span><span style="color:magenta;">OBJECT_ID</span><span style="color:gray;">(</span><span style="color:red;">N'[dbo].[vwShift]'</span><span style="color:gray;">))<br />
</span><span style="color:blue;">DROP VIEW </span><span style="color:black;">[dbo].[vwShift]<br />
GO<br />
</span><span style="color:blue;">CREATE VIEW </span><span style="color:black;">vwShift<br />
</span><span style="color:blue;">AS<br />
SELECT TOP </span><span style="color:black;">100 </span><span style="color:blue;">PERCENT </span><span style="color:gray;">*<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">HumanResources.Shift<br />
</span><span style="color:blue;">ORDER BY </span><span style="color:black;">ShiftID </span><span style="color:blue;">DESC<br />
</span><span style="color:black;">GO<br />
</span><span style="color:green;">-- Select From View<br />
</span><span style="color:blue;">SELECT </span><span style="color:gray;">*<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">vwShift<br />
GO<br />
</span></code></p>
<p style="text-align:justify;">Let us see the result of above script here. It is quite clear from the result that in the view, ORDER BY clause is ignored and result is returned as similar as that of a regular SELECT statement without ORDER BY.</p>
<p style="text-align:justify;"><img class="alignnone" src="http://www.pinaldave.com/bimg/selecttop.jpg" alt="" width="500" height="847" /></p>
<p style="text-align:justify;">Note that SQL Server 2008 view with ORDER BY clause does not throw an error; moreover, it does not acknowledge the presence of it as well.</p>
<p style="text-align:justify;">If you have any similar ideas as the above one, please leave a comment here.</p>
<p style="text-align:justify;">Reference: <strong>Pinal Dave (</strong><a href="http://blog.sqlauthority.com/" target="_blank"><strong>http://blog.sqlauthority.com</strong></a><strong>)</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL Server Row Paging (LIMIT OFFSET)]]></title>
<link>http://beenhazed.wordpress.com/2009/11/23/sql-server-row-paging-limit-offset/</link>
<pubDate>Mon, 23 Nov 2009 15:20:59 +0000</pubDate>
<dc:creator>beenhazed</dc:creator>
<guid>http://beenhazed.wordpress.com/2009/11/23/sql-server-row-paging-limit-offset/</guid>
<description><![CDATA[I have been wondering this for a long time, and ran across it the other day.&#160; I needed to find ]]></description>
<content:encoded><![CDATA[I have been wondering this for a long time, and ran across it the other day.&#160; I needed to find ]]></content:encoded>
</item>
<item>
<title><![CDATA[MSSQL Profiler Event Classes]]></title>
<link>http://davidsmulders.wordpress.com/2009/11/23/mssql-profiler-event-classes/</link>
<pubDate>Mon, 23 Nov 2009 13:07:54 +0000</pubDate>
<dc:creator>David Smulders</dc:creator>
<guid>http://davidsmulders.wordpress.com/2009/11/23/mssql-profiler-event-classes/</guid>
<description><![CDATA[Every now and then you need to use the profiler to analyze a process. While the profiler is a very u]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://davidsmulders.wordpress.com/files/2009/11/profiler.jpg"><img class="alignright size-medium wp-image-66" title="Profiler" src="http://davidsmulders.wordpress.com/files/2009/11/profiler.jpg?w=300" alt="" width="300" height="224" /></a></p>
<p>Every now and then you need to use the profiler to analyze a process. While the profiler is a very useful and powerful tool, the minute you save the output to a table and want to review your captured data you will find all friendly event names have been replaced by their numeric ID equivalent.</p>
<p>Unfortunately, SQL Server does not expose the description tables to these events. You could however create your own tables that van be joined to the profiler output tables. The following code will do just that.</p>
<p>&#160;</p>
<p>&#160;</p>
<p><!--more--></p>
<pre>/**************************************************************************
ProfilerEventClass Table and Data
**************************************************************************/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ProfilerEventClass]') AND type in (N'U'))
DROP TABLE [dbo].[ProfilerEventClass]
CREATE TABLE [dbo].[ProfilerEventClass](
[EventClassID] [int] NOT NULL,
[Name] [nvarchar](50) NULL,
[Description] [nvarchar](500) NULL,
CONSTRAINT [PK_ProfilerEventClass] PRIMARY KEY CLUSTERED
(
[EventClassID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (1, 'Audit Login', 'Collects all new connection events since the trace was started, such as when a client requests a connection to a server running an instance of SQL Server.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (2, 'Audit Logout', 'Collects all new disconnect events since the trace was started, such as when a client issues a disconnect command.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (4, 'Audit Server Starts And Stops', 'Records service shut down, start, and pause activities.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (18, 'Audit Object Permission Event', 'Records object permission changes.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (19, 'Audit Backup/Restore Event', 'Records server backup/restore.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (5, 'Progress Report Begin', 'Progress report begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (6, 'Progress Report End', 'Progress report end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (7, 'Progress Report Current', 'Progress report current.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (8, 'Progress Report Error', 'Progress report error.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (9, 'Query Begin', 'Query begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (10, 'Query End', 'Query end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (15, 'Command Begin', 'Command begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (16, 'Command End', 'Command end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (17, 'Error', 'Server error.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (33, 'Server State Discover Begin', 'Start of Server State Discover.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (34, 'Server State Discover Data', 'Contents of the Server State Discover Response.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (35, 'Server State Discover End', 'End of Server State Discover.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (36, 'Discover Begin', 'Start of Discover Request.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (38, 'Discover End', 'End of Discover Request.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (39, 'Notification', 'Notification event.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (40, 'User Defined', 'User defined Event.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (41, 'Existing Connection', 'Existing user connection.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (42, 'Existing Session', 'Existing session.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (43, 'Session Initialize', 'Session Initialize.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (50, 'Deadlock', 'Metadata locks deadlock.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (51, 'Lock timeout', 'Metadata lock timeout.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (70, 'Query Cube Begin', 'Query cube begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (71, 'Query Cube End', 'Query cube end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (72, 'Calculate Non Empty Begin', 'Calculate non empty begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (73, 'Calculate Non Empty Current', 'Calculate non empty current.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (74, 'Calculate Non Empty End', 'Calculate non empty end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (75, 'Serialize Results Begin', 'Serialize results begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (76, 'Serialize Results Current', 'Serialize results current.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (77, 'Serialize Results End', 'Serialize results end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (78, 'Execute MDX Script Begin', 'Execute MDX script begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (79, 'Execute MDX Script Current', 'Execute MDX script current.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (80, 'Execute MDX Script End', 'Execute MDX script end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (81, 'Query Dimension', 'Query dimension.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (11, 'Query Subcube', 'Query subcube, for Usage Based Optimization.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (12, 'Query Subcube Verbose', 'Query subcube with detailed information. This event may have a negative impact on performance when turned on.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (60, 'Get Data From Aggregation', 'Answer query by getting data from aggregation. This event may have a negative impact on performance when turned on.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (61, 'Get Data From Cache', 'Answer query by getting data from one of the caches. This event may have a negative impact on performance when turned on.')
/**************************************************************************
ProfilerEventSubClass Table and Data
**************************************************************************/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ProfilerEventSubClass]') AND type in (N'U'))
DROP TABLE [dbo].[ProfilerEventSubClass]
CREATE TABLE [dbo].[ProfilerEventSubClass](
[EventClassID] [int] NOT NULL,
[EventSubClassID] [int] NOT NULL,
[Name] [nvarchar](50) NULL,
CONSTRAINT [PK_ProfilerEventSubClass] PRIMARY KEY CLUSTERED
(
[EventClassID] ASC,
[EventSubClassID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (4, 1, 'Instance Shutdown')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (4, 2, 'Instance Started')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (4, 3, 'Instance Paused')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (4, 4, 'Instance Continued')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (19, 1, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (19, 2, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (19, 3, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 1, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 2, 'Merge')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 3, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 4, 'DeleteOldAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 5, 'Rebuild')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 6, 'Commit')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 7, 'Rollback')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 8, 'CreateIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 9, 'CreateTable')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 10, 'InsertInto')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 11, 'Transaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 12, 'Initialize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 13, 'Discretize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 14, 'Query')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 15, 'CreateView')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 16, 'WriteData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 17, 'ReadData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 18, 'GroupData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 19, 'GroupDataRecord')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 20, 'BuildIndex')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 21, 'Aggregate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 22, 'BuildDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 23, 'WriteDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 24, 'BuildDMDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 25, 'ExecuteSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 26, 'ExecuteModifiedSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 27, 'Connecting')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 28, 'BuildAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 29, 'MergeAggsOnDisk')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 30, 'BuildIndexForRigidAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 31, 'BuildIndexForFlexibleAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 32, 'WriteAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 33, 'WriteSegment')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 34, 'DataMiningProgress')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 35, 'ReadBufferFullReport')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 36, 'ProactiveCacheConversion')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 37, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 38, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 39, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 40, 'Build Processing Schedule')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 1, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 2, 'Merge')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 3, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 4, 'DeleteOldAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 5, 'Rebuild')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 6, 'Commit')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 7, 'Rollback')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 8, 'CreateIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 9, 'CreateTable')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 10, 'InsertInto')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 11, 'Transaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 12, 'Initialize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 13, 'Discretize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 14, 'Query')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 15, 'CreateView')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 16, 'WriteData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 17, 'ReadData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 18, 'GroupData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 19, 'GroupDataRecord')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 20, 'BuildIndex')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 21, 'Aggregate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 22, 'BuildDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 23, 'WriteDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 24, 'BuildDMDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 25, 'ExecuteSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 26, 'ExecuteModifiedSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 27, 'Connecting')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 28, 'BuildAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 29, 'MergeAggsOnDisk')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 30, 'BuildIndexForRigidAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 31, 'BuildIndexForFlexibleAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 32, 'WriteAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 33, 'WriteSegment')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 34, 'DataMiningProgress')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 35, 'ReadBufferFullReport')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 36, 'ProactiveCacheConversion')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 37, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 38, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 39, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 40, 'Build Processing Schedule')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 1, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 2, 'Merge')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 3, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 4, 'DeleteOldAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 5, 'Rebuild')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 6, 'Commit')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 7, 'Rollback')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 8, 'CreateIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 9, 'CreateTable')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 10, 'InsertInto')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 11, 'Transaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 12, 'Initialize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 13, 'Discretize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 14, 'Query')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 15, 'CreateView')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 16, 'WriteData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 17, 'ReadData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 18, 'GroupData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 19, 'GroupDataRecord')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 20, 'BuildIndex')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 21, 'Aggregate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 22, 'BuildDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 23, 'WriteDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 24, 'BuildDMDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 25, 'ExecuteSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 26, 'ExecuteModifiedSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 27, 'Connecting')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 28, 'BuildAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 29, 'MergeAggsOnDisk')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 30, 'BuildIndexForRigidAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 31, 'BuildIndexForFlexibleAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 32, 'WriteAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 33, 'WriteSegment')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 34, 'DataMiningProgress')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 35, 'ReadBufferFullReport')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 36, 'ProactiveCacheConversion')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 37, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 38, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 39, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 40, 'Build Processing Schedule')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 1, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 2, 'Merge')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 3, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 4, 'DeleteOldAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 5, 'Rebuild')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 6, 'Commit')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 7, 'Rollback')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 8, 'CreateIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 9, 'CreateTable')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 10, 'InsertInto')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 11, 'Transaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 12, 'Initialize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 13, 'Discretize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 14, 'Query')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 15, 'CreateView')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 16, 'WriteData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 17, 'ReadData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 18, 'GroupData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 19, 'GroupDataRecord')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 20, 'BuildIndex')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 21, 'Aggregate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 22, 'BuildDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 23, 'WriteDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 24, 'BuildDMDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 25, 'ExecuteSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 26, 'ExecuteModifiedSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 27, 'Connecting')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 28, 'BuildAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 29, 'MergeAggsOnDisk')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 30, 'BuildIndexForRigidAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 31, 'BuildIndexForFlexibleAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 32, 'WriteAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 33, 'WriteSegment')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 34, 'DataMiningProgress')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 35, 'ReadBufferFullReport')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 36, 'ProactiveCacheConversion')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 37, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 38, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 39, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 40, 'Build Processing Schedule')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (9, 0, 'MDXQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (9, 1, 'DMXQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (9, 2, 'SQLQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (10, 0, 'MDXQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (10, 1, 'DMXQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (10, 2, 'SQLQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 0, 'Create')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 1, 'Alter')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 2, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 3, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 4, 'DesignAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 5, 'WBInsert')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 6, 'WBUpdate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 7, 'WBDelete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 8, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 9, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 10, 'MergePartitions')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 11, 'Subscribe')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 12, 'Batch')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 13, 'BeginTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 14, 'CommitTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 15, 'RollbackTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 16, 'GetTransactionState')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 17, 'Cancel')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 18, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 19, 'Import80MiningModels')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 10000, 'Other')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 0, 'Create')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 1, 'Alter')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 2, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 3, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 4, 'DesignAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 5, 'WBInsert')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 6, 'WBUpdate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 7, 'WBDelete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 8, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 9, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 10, 'MergePartitions')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 11, 'Subscribe')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 12, 'Batch')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 13, 'BeginTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 14, 'CommitTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 15, 'RollbackTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 16, 'GetTransactionState')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 17, 'Cancel')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 18, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 19, 'Import80MiningModels')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 10000, 'Other')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 1, 'DISCOVER_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 2, 'DISCOVER_SESSIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 3, 'DISCOVER_TRANSACTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 6, 'DISCOVER_DB_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 7, 'DISCOVER_JOBS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 8, 'DISCOVER_LOCKS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 12, 'DISCOVER_PERFORMANCE_COUNTERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 13, 'DISCOVER_MEMORYUSAGE')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 14, 'DISCOVER_JOB_PROGRESS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 15, 'DISCOVER_MEMORYGRANT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 1, 'DISCOVER_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 2, 'DISCOVER_SESSIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 3, 'DISCOVER_TRANSACTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 6, 'DISCOVER_DB_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 7, 'DISCOVER_JOBS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 8, 'DISCOVER_LOCKS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 12, 'DISCOVER_PERFORMANCE_COUNTERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 13, 'DISCOVER_MEMORYUSAGE')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 14, 'DISCOVER_JOB_PROGRESS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 15, 'DISCOVER_MEMORYGRANT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 1, 'DISCOVER_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 2, 'DISCOVER_SESSIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 3, 'DISCOVER_TRANSACTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 6, 'DISCOVER_DB_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 7, 'DISCOVER_JOBS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 8, 'DISCOVER_LOCKS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 12, 'DISCOVER_PERFORMANCE_COUNTERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 13, 'DISCOVER_MEMORYUSAGE')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 14, 'DISCOVER_JOB_PROGRESS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 15, 'DISCOVER_MEMORYGRANT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 0, 'DBSCHEMA_CATALOGS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 1, 'DBSCHEMA_TABLES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 2, 'DBSCHEMA_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 3, 'DBSCHEMA_PROVIDER_TYPES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 4, 'MDSCHEMA_CUBES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 5, 'MDSCHEMA_DIMENSIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 6, 'MDSCHEMA_HIERARCHIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 7, 'MDSCHEMA_LEVELS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 8, 'MDSCHEMA_MEASURES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 9, 'MDSCHEMA_PROPERTIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 10, 'MDSCHEMA_MEMBERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 11, 'MDSCHEMA_FUNCTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 12, 'MDSCHEMA_ACTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 13, 'MDSCHEMA_SETS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 14, 'DISCOVER_INSTANCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 15, 'MDSCHEMA_KPIS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 16, 'MDSCHEMA_MEASUREGROUPS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 17, 'MDSCHEMA_COMMANDS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 18, 'DMSCHEMA_MINING_SERVICES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 19, 'DMSCHEMA_MINING_SERVICE_PARAMETERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 20, 'DMSCHEMA_MINING_FUNCTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 21, 'DMSCHEMA_MINING_MODEL_CONTENT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 22, 'DMSCHEMA_MINING_MODEL_XML')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 23, 'DMSCHEMA_MINING_MODELS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 24, 'DMSCHEMA_MINING_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 25, 'DISCOVER_DATASOURCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 26, 'DISCOVER_PROPERTIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 27, 'DISCOVER_SCHEMA_ROWSETS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 28, 'DISCOVER_ENUMERATORS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 29, 'DISCOVER_KEYWORDS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 30, 'DISCOVER_LITERALS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 31, 'DISCOVER_XML_METADATA')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 32, 'DISCOVER_TRACES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 33, 'DISCOVER_TRACE_DEFINITION_PROVIDERINFO')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 34, 'DISCOVER_TRACE_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 35, 'DISCOVER_TRACE_EVENT_CATEGORIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 36, 'DMSCHEMA_MINING_STRUCTURES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 37, 'DMSCHEMA_MINING_STRUCTURE_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 38, 'DISCOVER_MASTER_KEY')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 39, 'MDSCHEMA_INPUT_DATASOURCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 40, 'DISCOVER_LOCATIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 41, 'DISCOVER_PARTITION_DIMENSION_STAT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 42, 'DISCOVER_PARTITION_STAT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 43, 'DISCOVER_DIMENSION_STAT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 0, 'DBSCHEMA_CATALOGS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 1, 'DBSCHEMA_TABLES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 2, 'DBSCHEMA_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 3, 'DBSCHEMA_PROVIDER_TYPES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 4, 'MDSCHEMA_CUBES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 5, 'MDSCHEMA_DIMENSIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 6, 'MDSCHEMA_HIERARCHIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 7, 'MDSCHEMA_LEVELS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 8, 'MDSCHEMA_MEASURES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 9, 'MDSCHEMA_PROPERTIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 10, 'MDSCHEMA_MEMBERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 11, 'MDSCHEMA_FUNCTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 12, 'MDSCHEMA_ACTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 13, 'MDSCHEMA_SETS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 14, 'DISCOVER_INSTANCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 15, 'MDSCHEMA_KPIS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 16, 'MDSCHEMA_MEASUREGROUPS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 17, 'MDSCHEMA_COMMANDS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 18, 'DMSCHEMA_MINING_SERVICES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 19, 'DMSCHEMA_MINING_SERVICE_PARAMETERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 20, 'DMSCHEMA_MINING_FUNCTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 21, 'DMSCHEMA_MINING_MODEL_CONTENT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 22, 'DMSCHEMA_MINING_MODEL_XML')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 23, 'DMSCHEMA_MINING_MODELS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 24, 'DMSCHEMA_MINING_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 25, 'DISCOVER_DATASOURCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 26, 'DISCOVER_PROPERTIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 27, 'DISCOVER_SCHEMA_ROWSETS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 28, 'DISCOVER_ENUMERATORS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 29, 'DISCOVER_KEYWORDS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 30, 'DISCOVER_LITERALS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 31, 'DISCOVER_XML_METADATA')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 32, 'DISCOVER_TRACES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 33, 'DISCOVER_TRACE_DEFINITION_PROVIDERINFO')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 34, 'DISCOVER_TRACE_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 35, 'DISCOVER_TRACE_EVENT_CATEGORIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 36, 'DMSCHEMA_MINING_STRUCTURES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 37, 'DMSCHEMA_MINING_STRUCTURE_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 38, 'DISCOVER_MASTER_KEY')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 39, 'MDSCHEMA_INPUT_DATASOURCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 40, 'DISCOVER_LOCATIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 0, 'Proactive Caching Begin')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 1, 'Proactive Caching End')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 2, 'Flight Recorder Started')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 3, 'Flight Recorder Stopped')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 4, 'Configuration Properties Updated')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 5, 'SQL Trace')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 6, 'Object Created')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 7, 'Object Deleted')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 8, 'Object Altered')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 9, 'Proactive Caching Polling Begin')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 10, 'Proactive Caching Polling End')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 11, 'Flight Recorder Snapshot Begin')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 12, 'Flight Recorder Snapshot End')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 13, 'Proactive Caching: notifiable object updated')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 14, 'Lazy Processing: start processing')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 15, 'Lazy Processing: processing complete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (73, 1, 'Get Data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (73, 2, 'Process Calculated Members')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (73, 3, 'Post Order')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (76, 1, 'Serialize Axes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (76, 2, 'Serialize Cells')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (76, 3, 'Serialize SQL Rowset')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (76, 4, 'Serialize Flattened Rowset')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (81, 1, 'Cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (81, 2, 'Non-cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 1, 'Cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 2, 'Non-cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 3, 'Internal data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 4, 'SQL data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 11, 'Measure Group Structural Change')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 12, 'Measure Group Deletion')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (12, 21, 'Cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (12, 22, 'Non-cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (12, 23, 'Internal data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (12, 24, 'SQL data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (61, 1, 'Get data from measure group cache')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (61, 2, 'Get data from flat cache')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (61, 3, 'Get data from calculation cache')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (61, 4, 'Get data from persisted cache')</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Profiler Event Classes]]></title>
<link>http://davidsmulders.wordpress.com/2009/11/23/profiler-event-classes/</link>
<pubDate>Mon, 23 Nov 2009 11:58:21 +0000</pubDate>
<dc:creator>David Smulders</dc:creator>
<guid>http://davidsmulders.wordpress.com/2009/11/23/profiler-event-classes/</guid>
<description><![CDATA[Every now and then you need to use the profiler to analyze a process. While the profiler is a very u]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p><a href="http://davidsmulders.wordpress.com/files/2009/11/profiler.jpg"><img class="alignright size-medium wp-image-66" title="Profiler" src="http://davidsmulders.wordpress.com/files/2009/11/profiler.jpg?w=300" alt="" width="300" height="224" /></a>Every now and then you need to use the profiler to analyze a process. While the profiler is a very useful and powerful tool, the minute you save the output to a table and want to review your captured data you will find all friendly event names have been replaced by their numeric ID equivalent.</p>
<p>Unfortunately, SQL Server does not expose the description tables to these events. You could however create your own tables that van be joined to the profiler output tables. The following code will do just that.</p>
<pre><!--more-->
/**************************************************************************
ProfilerEventClass Table and Data
**************************************************************************/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ProfilerEventClass]') AND type in (N'U'))
DROP TABLE [dbo].[ProfilerEventClass]
CREATE TABLE [dbo].[ProfilerEventClass](
[EventClassID] [int] NOT NULL,
[Name] [nvarchar](50) NULL,
[Description] [nvarchar](500) NULL,
CONSTRAINT [PK_ProfilerEventClass] PRIMARY KEY CLUSTERED
(
[EventClassID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (1, 'Audit Login', 'Collects all new connection events since the trace was started, such as when a client requests a connection to a server running an instance of SQL Server.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (2, 'Audit Logout', 'Collects all new disconnect events since the trace was started, such as when a client issues a disconnect command.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (4, 'Audit Server Starts And Stops', 'Records service shut down, start, and pause activities.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (18, 'Audit Object Permission Event', 'Records object permission changes.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (19, 'Audit Backup/Restore Event', 'Records server backup/restore.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (5, 'Progress Report Begin', 'Progress report begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (6, 'Progress Report End', 'Progress report end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (7, 'Progress Report Current', 'Progress report current.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (8, 'Progress Report Error', 'Progress report error.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (9, 'Query Begin', 'Query begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (10, 'Query End', 'Query end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (15, 'Command Begin', 'Command begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (16, 'Command End', 'Command end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (17, 'Error', 'Server error.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (33, 'Server State Discover Begin', 'Start of Server State Discover.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (34, 'Server State Discover Data', 'Contents of the Server State Discover Response.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (35, 'Server State Discover End', 'End of Server State Discover.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (36, 'Discover Begin', 'Start of Discover Request.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (38, 'Discover End', 'End of Discover Request.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (39, 'Notification', 'Notification event.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (40, 'User Defined', 'User defined Event.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (41, 'Existing Connection', 'Existing user connection.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (42, 'Existing Session', 'Existing session.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (43, 'Session Initialize', 'Session Initialize.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (50, 'Deadlock', 'Metadata locks deadlock.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (51, 'Lock timeout', 'Metadata lock timeout.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (70, 'Query Cube Begin', 'Query cube begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (71, 'Query Cube End', 'Query cube end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (72, 'Calculate Non Empty Begin', 'Calculate non empty begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (73, 'Calculate Non Empty Current', 'Calculate non empty current.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (74, 'Calculate Non Empty End', 'Calculate non empty end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (75, 'Serialize Results Begin', 'Serialize results begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (76, 'Serialize Results Current', 'Serialize results current.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (77, 'Serialize Results End', 'Serialize results end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (78, 'Execute MDX Script Begin', 'Execute MDX script begin.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (79, 'Execute MDX Script Current', 'Execute MDX script current.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (80, 'Execute MDX Script End', 'Execute MDX script end.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (81, 'Query Dimension', 'Query dimension.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (11, 'Query Subcube', 'Query subcube, for Usage Based Optimization.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (12, 'Query Subcube Verbose', 'Query subcube with detailed information. This event may have a negative impact on performance when turned on.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (60, 'Get Data From Aggregation', 'Answer query by getting data from aggregation. This event may have a negative impact on performance when turned on.')
INSERT INTO [dbo].[ProfilerEventClass] ([EventClassID],[Name],[Description]) VALUES (61, 'Get Data From Cache', 'Answer query by getting data from one of the caches. This event may have a negative impact on performance when turned on.')
/**************************************************************************
ProfilerEventSubClass Table and Data
**************************************************************************/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ProfilerEventSubClass]') AND type in (N'U'))
DROP TABLE [dbo].[ProfilerEventSubClass]
CREATE TABLE [dbo].[ProfilerEventSubClass](
[EventClassID] [int] NOT NULL,
[EventSubClassID] [int] NOT NULL,
[Name] [nvarchar](50) NULL,
CONSTRAINT [PK_ProfilerEventSubClass] PRIMARY KEY CLUSTERED
(
[EventClassID] ASC,
[EventSubClassID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (4, 1, 'Instance Shutdown')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (4, 2, 'Instance Started')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (4, 3, 'Instance Paused')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (4, 4, 'Instance Continued')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (19, 1, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (19, 2, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (19, 3, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 1, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 2, 'Merge')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 3, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 4, 'DeleteOldAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 5, 'Rebuild')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 6, 'Commit')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 7, 'Rollback')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 8, 'CreateIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 9, 'CreateTable')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 10, 'InsertInto')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 11, 'Transaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 12, 'Initialize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 13, 'Discretize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 14, 'Query')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 15, 'CreateView')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 16, 'WriteData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 17, 'ReadData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 18, 'GroupData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 19, 'GroupDataRecord')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 20, 'BuildIndex')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 21, 'Aggregate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 22, 'BuildDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 23, 'WriteDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 24, 'BuildDMDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 25, 'ExecuteSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 26, 'ExecuteModifiedSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 27, 'Connecting')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 28, 'BuildAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 29, 'MergeAggsOnDisk')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 30, 'BuildIndexForRigidAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 31, 'BuildIndexForFlexibleAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 32, 'WriteAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 33, 'WriteSegment')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 34, 'DataMiningProgress')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 35, 'ReadBufferFullReport')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 36, 'ProactiveCacheConversion')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 37, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 38, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 39, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (5, 40, 'Build Processing Schedule')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 1, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 2, 'Merge')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 3, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 4, 'DeleteOldAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 5, 'Rebuild')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 6, 'Commit')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 7, 'Rollback')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 8, 'CreateIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 9, 'CreateTable')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 10, 'InsertInto')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 11, 'Transaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 12, 'Initialize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 13, 'Discretize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 14, 'Query')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 15, 'CreateView')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 16, 'WriteData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 17, 'ReadData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 18, 'GroupData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 19, 'GroupDataRecord')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 20, 'BuildIndex')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 21, 'Aggregate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 22, 'BuildDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 23, 'WriteDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 24, 'BuildDMDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 25, 'ExecuteSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 26, 'ExecuteModifiedSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 27, 'Connecting')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 28, 'BuildAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 29, 'MergeAggsOnDisk')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 30, 'BuildIndexForRigidAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 31, 'BuildIndexForFlexibleAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 32, 'WriteAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 33, 'WriteSegment')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 34, 'DataMiningProgress')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 35, 'ReadBufferFullReport')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 36, 'ProactiveCacheConversion')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 37, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 38, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 39, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (6, 40, 'Build Processing Schedule')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 1, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 2, 'Merge')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 3, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 4, 'DeleteOldAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 5, 'Rebuild')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 6, 'Commit')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 7, 'Rollback')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 8, 'CreateIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 9, 'CreateTable')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 10, 'InsertInto')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 11, 'Transaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 12, 'Initialize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 13, 'Discretize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 14, 'Query')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 15, 'CreateView')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 16, 'WriteData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 17, 'ReadData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 18, 'GroupData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 19, 'GroupDataRecord')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 20, 'BuildIndex')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 21, 'Aggregate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 22, 'BuildDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 23, 'WriteDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 24, 'BuildDMDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 25, 'ExecuteSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 26, 'ExecuteModifiedSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 27, 'Connecting')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 28, 'BuildAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 29, 'MergeAggsOnDisk')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 30, 'BuildIndexForRigidAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 31, 'BuildIndexForFlexibleAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 32, 'WriteAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 33, 'WriteSegment')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 34, 'DataMiningProgress')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 35, 'ReadBufferFullReport')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 36, 'ProactiveCacheConversion')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 37, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 38, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 39, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (7, 40, 'Build Processing Schedule')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 1, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 2, 'Merge')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 3, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 4, 'DeleteOldAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 5, 'Rebuild')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 6, 'Commit')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 7, 'Rollback')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 8, 'CreateIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 9, 'CreateTable')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 10, 'InsertInto')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 11, 'Transaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 12, 'Initialize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 13, 'Discretize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 14, 'Query')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 15, 'CreateView')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 16, 'WriteData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 17, 'ReadData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 18, 'GroupData')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 19, 'GroupDataRecord')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 20, 'BuildIndex')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 21, 'Aggregate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 22, 'BuildDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 23, 'WriteDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 24, 'BuildDMDecode')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 25, 'ExecuteSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 26, 'ExecuteModifiedSQL')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 27, 'Connecting')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 28, 'BuildAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 29, 'MergeAggsOnDisk')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 30, 'BuildIndexForRigidAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 31, 'BuildIndexForFlexibleAggs')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 32, 'WriteAggsAndIndexes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 33, 'WriteSegment')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 34, 'DataMiningProgress')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 35, 'ReadBufferFullReport')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 36, 'ProactiveCacheConversion')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 37, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 38, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 39, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (8, 40, 'Build Processing Schedule')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (9, 0, 'MDXQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (9, 1, 'DMXQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (9, 2, 'SQLQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (10, 0, 'MDXQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (10, 1, 'DMXQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (10, 2, 'SQLQuery')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 0, 'Create')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 1, 'Alter')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 2, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 3, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 4, 'DesignAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 5, 'WBInsert')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 6, 'WBUpdate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 7, 'WBDelete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 8, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 9, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 10, 'MergePartitions')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 11, 'Subscribe')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 12, 'Batch')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 13, 'BeginTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 14, 'CommitTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 15, 'RollbackTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 16, 'GetTransactionState')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 17, 'Cancel')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 18, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 19, 'Import80MiningModels')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (15, 10000, 'Other')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 0, 'Create')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 1, 'Alter')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 2, 'Delete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 3, 'Process')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 4, 'DesignAggregations')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 5, 'WBInsert')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 6, 'WBUpdate')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 7, 'WBDelete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 8, 'Backup')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 9, 'Restore')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 10, 'MergePartitions')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 11, 'Subscribe')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 12, 'Batch')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 13, 'BeginTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 14, 'CommitTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 15, 'RollbackTransaction')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 16, 'GetTransactionState')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 17, 'Cancel')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 18, 'Synchronize')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 19, 'Import80MiningModels')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (16, 10000, 'Other')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 1, 'DISCOVER_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 2, 'DISCOVER_SESSIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 3, 'DISCOVER_TRANSACTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 6, 'DISCOVER_DB_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 7, 'DISCOVER_JOBS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 8, 'DISCOVER_LOCKS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 12, 'DISCOVER_PERFORMANCE_COUNTERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 13, 'DISCOVER_MEMORYUSAGE')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 14, 'DISCOVER_JOB_PROGRESS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (33, 15, 'DISCOVER_MEMORYGRANT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 1, 'DISCOVER_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 2, 'DISCOVER_SESSIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 3, 'DISCOVER_TRANSACTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 6, 'DISCOVER_DB_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 7, 'DISCOVER_JOBS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 8, 'DISCOVER_LOCKS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 12, 'DISCOVER_PERFORMANCE_COUNTERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 13, 'DISCOVER_MEMORYUSAGE')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 14, 'DISCOVER_JOB_PROGRESS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (34, 15, 'DISCOVER_MEMORYGRANT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 1, 'DISCOVER_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 2, 'DISCOVER_SESSIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 3, 'DISCOVER_TRANSACTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 6, 'DISCOVER_DB_CONNECTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 7, 'DISCOVER_JOBS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 8, 'DISCOVER_LOCKS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 12, 'DISCOVER_PERFORMANCE_COUNTERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 13, 'DISCOVER_MEMORYUSAGE')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 14, 'DISCOVER_JOB_PROGRESS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (35, 15, 'DISCOVER_MEMORYGRANT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 0, 'DBSCHEMA_CATALOGS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 1, 'DBSCHEMA_TABLES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 2, 'DBSCHEMA_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 3, 'DBSCHEMA_PROVIDER_TYPES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 4, 'MDSCHEMA_CUBES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 5, 'MDSCHEMA_DIMENSIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 6, 'MDSCHEMA_HIERARCHIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 7, 'MDSCHEMA_LEVELS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 8, 'MDSCHEMA_MEASURES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 9, 'MDSCHEMA_PROPERTIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 10, 'MDSCHEMA_MEMBERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 11, 'MDSCHEMA_FUNCTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 12, 'MDSCHEMA_ACTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 13, 'MDSCHEMA_SETS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 14, 'DISCOVER_INSTANCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 15, 'MDSCHEMA_KPIS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 16, 'MDSCHEMA_MEASUREGROUPS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 17, 'MDSCHEMA_COMMANDS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 18, 'DMSCHEMA_MINING_SERVICES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 19, 'DMSCHEMA_MINING_SERVICE_PARAMETERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 20, 'DMSCHEMA_MINING_FUNCTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 21, 'DMSCHEMA_MINING_MODEL_CONTENT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 22, 'DMSCHEMA_MINING_MODEL_XML')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 23, 'DMSCHEMA_MINING_MODELS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 24, 'DMSCHEMA_MINING_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 25, 'DISCOVER_DATASOURCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 26, 'DISCOVER_PROPERTIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 27, 'DISCOVER_SCHEMA_ROWSETS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 28, 'DISCOVER_ENUMERATORS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 29, 'DISCOVER_KEYWORDS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 30, 'DISCOVER_LITERALS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 31, 'DISCOVER_XML_METADATA')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 32, 'DISCOVER_TRACES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 33, 'DISCOVER_TRACE_DEFINITION_PROVIDERINFO')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 34, 'DISCOVER_TRACE_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 35, 'DISCOVER_TRACE_EVENT_CATEGORIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 36, 'DMSCHEMA_MINING_STRUCTURES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 37, 'DMSCHEMA_MINING_STRUCTURE_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 38, 'DISCOVER_MASTER_KEY')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 39, 'MDSCHEMA_INPUT_DATASOURCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 40, 'DISCOVER_LOCATIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 41, 'DISCOVER_PARTITION_DIMENSION_STAT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 42, 'DISCOVER_PARTITION_STAT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (36, 43, 'DISCOVER_DIMENSION_STAT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 0, 'DBSCHEMA_CATALOGS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 1, 'DBSCHEMA_TABLES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 2, 'DBSCHEMA_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 3, 'DBSCHEMA_PROVIDER_TYPES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 4, 'MDSCHEMA_CUBES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 5, 'MDSCHEMA_DIMENSIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 6, 'MDSCHEMA_HIERARCHIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 7, 'MDSCHEMA_LEVELS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 8, 'MDSCHEMA_MEASURES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 9, 'MDSCHEMA_PROPERTIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 10, 'MDSCHEMA_MEMBERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 11, 'MDSCHEMA_FUNCTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 12, 'MDSCHEMA_ACTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 13, 'MDSCHEMA_SETS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 14, 'DISCOVER_INSTANCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 15, 'MDSCHEMA_KPIS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 16, 'MDSCHEMA_MEASUREGROUPS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 17, 'MDSCHEMA_COMMANDS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 18, 'DMSCHEMA_MINING_SERVICES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 19, 'DMSCHEMA_MINING_SERVICE_PARAMETERS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 20, 'DMSCHEMA_MINING_FUNCTIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 21, 'DMSCHEMA_MINING_MODEL_CONTENT')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 22, 'DMSCHEMA_MINING_MODEL_XML')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 23, 'DMSCHEMA_MINING_MODELS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 24, 'DMSCHEMA_MINING_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 25, 'DISCOVER_DATASOURCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 26, 'DISCOVER_PROPERTIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 27, 'DISCOVER_SCHEMA_ROWSETS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 28, 'DISCOVER_ENUMERATORS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 29, 'DISCOVER_KEYWORDS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 30, 'DISCOVER_LITERALS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 31, 'DISCOVER_XML_METADATA')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 32, 'DISCOVER_TRACES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 33, 'DISCOVER_TRACE_DEFINITION_PROVIDERINFO')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 34, 'DISCOVER_TRACE_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 35, 'DISCOVER_TRACE_EVENT_CATEGORIES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 36, 'DMSCHEMA_MINING_STRUCTURES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 37, 'DMSCHEMA_MINING_STRUCTURE_COLUMNS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 38, 'DISCOVER_MASTER_KEY')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 39, 'MDSCHEMA_INPUT_DATASOURCES')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (38, 40, 'DISCOVER_LOCATIONS')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 0, 'Proactive Caching Begin')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 1, 'Proactive Caching End')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 2, 'Flight Recorder Started')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 3, 'Flight Recorder Stopped')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 4, 'Configuration Properties Updated')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 5, 'SQL Trace')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 6, 'Object Created')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 7, 'Object Deleted')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 8, 'Object Altered')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 9, 'Proactive Caching Polling Begin')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 10, 'Proactive Caching Polling End')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 11, 'Flight Recorder Snapshot Begin')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 12, 'Flight Recorder Snapshot End')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 13, 'Proactive Caching: notifiable object updated')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 14, 'Lazy Processing: start processing')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (39, 15, 'Lazy Processing: processing complete')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (73, 1, 'Get Data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (73, 2, 'Process Calculated Members')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (73, 3, 'Post Order')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (76, 1, 'Serialize Axes')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (76, 2, 'Serialize Cells')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (76, 3, 'Serialize SQL Rowset')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (76, 4, 'Serialize Flattened Rowset')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (81, 1, 'Cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (81, 2, 'Non-cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 1, 'Cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 2, 'Non-cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 3, 'Internal data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 4, 'SQL data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 11, 'Measure Group Structural Change')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (11, 12, 'Measure Group Deletion')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (12, 21, 'Cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (12, 22, 'Non-cache data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (12, 23, 'Internal data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (12, 24, 'SQL data')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (61, 1, 'Get data from measure group cache')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (61, 2, 'Get data from flat cache')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (61, 3, 'Get data from calculation cache')
INSERT INTO [dbo].[ProfilerEventSubClass] ([EventClassID], [EventSubClassID],[Name]) VALUES (61, 4, 'Get data from persisted cache')</pre>
</blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[title]]></title>
<link>http://scriptforall.wordpress.com/2009/11/23/title-31/</link>
<pubDate>Mon, 23 Nov 2009 09:01:05 +0000</pubDate>
<dc:creator>kostland</dc:creator>
<guid>http://scriptforall.wordpress.com/2009/11/23/title-31/</guid>
<description><![CDATA[Patch Tuesday Oracle: 38 corrective measures of scurit annoncs &#8211; Actualits &#8211; ZDNet. Fr E]]></description>
<content:encoded><![CDATA[Patch Tuesday Oracle: 38 corrective measures of scurit annoncs &#8211; Actualits &#8211; ZDNet. Fr E]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL SERVER - A Common Design Problem - Should the Primary Key Always be a Clustered Index]]></title>
<link>http://blog.sqlauthority.com/2009/11/23/sql-server-a-common-design-problem-should-the-primary-key-always-be-a-clustered-index/</link>
<pubDate>Mon, 23 Nov 2009 01:30:34 +0000</pubDate>
<dc:creator>pinaldave</dc:creator>
<guid>http://blog.sqlauthority.com/2009/11/23/sql-server-a-common-design-problem-should-the-primary-key-always-be-a-clustered-index/</guid>
<description><![CDATA[In SQL Server, whenever we create any key, a Primary Key automatically creates clustered index on th]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;">In SQL Server, whenever we create any key, a Primary Key automatically creates clustered index on the same. I like this feature and I use this feature every now and then.</p>
<p style="text-align:justify;">The question is does the change of any column as Primary Key should also create a Clustered Index? Moreover, is there any case, where one would not do the same?</p>
<p style="text-align:justify;">One of the recent conversations I had with one SQL Expert is with regard to the SSN number. The discussion was that SSN numbers are always unique and never repeated and hence are the best candidates for primary key. Additionally SSN numbers contains dashes (-), which make the datatype of the SSN numbers as String (VARCHAR or NVARCHAR). A clustered index on an integer usually performs better over a clustered index on an integer and makes the DBA to choose Primary Key of datatype Integer. At one point in our conversation, we discussed that if SSN number should be a Unique Constraint and if there should be another Identity Column as the Primary Key.</p>
<p style="text-align:justify;">Some of the questions from our interesting discussion are as follows:</p>
<p style="text-align:justify;"><strong><em>Would you have the datatype of your Primary Key as string?<br />
Would you treat SSN as string datatype or remove the dashes and change it into an integer?<br />
Do you have a real life example, where your primary key is not a clustered index?<br />
What are the best practices for SSN number to store in database and obtain optimal performance?</em></strong></p>
<p style="text-align:justify;">I will post an interesting answer discussing this subject in a separate post with due credit.</p>
<p style="text-align:justify;">Reference: <strong>Pinal Dave (</strong><a href="http://blog.sqlauthority.com/" target="_blank"><strong>http://blog.sqlauthority.com</strong></a><strong>)</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL SERVER - Remove Bookmark Key Lookup - 4 Different Ideas]]></title>
<link>http://blog.sqlauthority.com/2009/11/22/sql-server-remove-bookmark-key-lookup-4-different-ideas/</link>
<pubDate>Sun, 22 Nov 2009 01:30:12 +0000</pubDate>
<dc:creator>pinaldave</dc:creator>
<guid>http://blog.sqlauthority.com/2009/11/22/sql-server-remove-bookmark-key-lookup-4-different-ideas/</guid>
<description><![CDATA[I quite often get request to summarized my ideas about Removing bookmark lookup on this blog post. B]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;">I quite often get request to summarized my ideas about Removing bookmark lookup on this blog post. Bookmark lookup or key lookup are bad for any query as they force query engine to lookpup corresponding row in the table or index as it does not find required data from just reading the data.</p>
<p style="text-align:justify;">Here are list of my four post written on the same subject.</p>
<p style="text-align:justify;"><a href="http://blog.sqlauthority.com/2009/10/07/sql-server-query-optimization-remove-bookmark-lookup-remove-rid-lookup-remove-key-lookup/" target="_blank">SQL SERVER – Query Optimization – Remove Bookmark Lookup – Remove RID Lookup – Remove Key Lookup</a></p>
<p style="text-align:justify;"><a href="http://blog.sqlauthority.com/2009/10/08/sql-server-query-optimization-remove-bookmark-lookup-remove-rid-lookup-remove-key-lookup-part-2/" target="_blank">SQL SERVER – Query Optimization – Remove Bookmark Lookup – Remove RID Lookup – Remove Key Lookup – Part 2</a></p>
<p style="text-align:justify;"><a href="http://blog.sqlauthority.com/2009/10/12/sql-server-query-optimization-remove-bookmark-lookup-remove-rid-lookup-remove-key-lookup-part-3" target="_blank">SQL SERVER – Query Optimization – Remove Bookmark Lookup – Remove RID Lookup – Remove Key Lookup – Part 3</a></p>
<p style="text-align:justify;"><a href="http://blog.sqlauthority.com/2009/11/09/sql-server-removing-key-lookup-seek-predicate-predicate-an-interesting-observation-related-to-datatypes/" target="_blank">SQL SERVER – Removing Key Lookup – Seek Predicate – Predicate – An Interesting Observation Related to Datatypes</a></p>
<p style="text-align:justify;">Let me know your opinion about the same and I am interested to here what you have to add to this subject.</p>
<p style="text-align:justify;">Reference: <strong>Pinal Dave (</strong><a href="http://blog.sqlauthority.com/" target="_blank"><strong>http://blog.sqlauthority.com</strong></a><strong>)</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQLAuthority News - SQL Server 2008 for Oracle DBA]]></title>
<link>http://blog.sqlauthority.com/2009/11/21/sqlauthority-news-sql-server-2008-for-oracle-dba/</link>
<pubDate>Sat, 21 Nov 2009 01:30:19 +0000</pubDate>
<dc:creator>pinaldave</dc:creator>
<guid>http://blog.sqlauthority.com/2009/11/21/sqlauthority-news-sql-server-2008-for-oracle-dba/</guid>
<description><![CDATA[This 15 modules, level 300 course provides students with the knowledge and skills to capitalize on t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;">This 15 modules, level 300 course provides students with the knowledge and skills to capitalize on their skills and experience as an Oracle DBA to manage a Microsoft SQL Server 2008 system. This workshop provides a quick start for the Oracle DBA to map, compare, and contrast the realm of Oracle database management to SQL Server database management.</p>
<p style="text-align:justify;"><a id="ctl00_mainContentContainer_ctl02" href="http://technet.microsoft.com/en-us/sqlserver/dd535524.aspx">Module 1: Database and Instance</a><br />
<a id="ctl00_mainContentContainer_ctl03" href="http://technet.microsoft.com/en-us/sqlserver/dd537577.aspx">Module 2: Database Architecture</a><br />
<a id="ctl00_mainContentContainer_ctl04" href="http://technet.microsoft.com/en-us/sqlserver/dd542622.aspx">Module 3: Instance Architecture</a><br />
<a id="ctl00_mainContentContainer_ctl05" href="http://technet.microsoft.com/en-us/sqlserver/dd542624.aspx">Module 4: Data Objects</a><br />
<a id="ctl00_mainContentContainer_ctl06" href="http://technet.microsoft.com/en-us/sqlserver/dd542626.aspx">Module 5: Data Access</a><br />
<a id="ctl00_mainContentContainer_ctl07" href="http://technet.microsoft.com/en-us/sqlserver/dd542627.aspx">Module 6: Data Protection</a><br />
<a id="ctl00_mainContentContainer_ctl08" href="http://technet.microsoft.com/en-us/sqlserver/dd547093.aspx">Module 7: Basic Administration</a><br />
<a id="ctl00_mainContentContainer_ctl09" href="http://technet.microsoft.com/en-us/sqlserver/dd547406.aspx">Module 8: Server Management</a><br />
<a id="ctl00_mainContentContainer_ctl10" href="http://technet.microsoft.com/en-us/sqlserver/dd547109.aspx">Module 9: Managing Schema Objects</a><br />
<a id="ctl00_mainContentContainer_ctl11" href="http://technet.microsoft.com/en-us/sqlserver/dd547407.aspx">Module 10: Database Security</a><br />
<a id="ctl00_mainContentContainer_ctl12" href="http://technet.microsoft.com/en-us/sqlserver/dd547418.aspx">Module 11: Data Transport</a><br />
<a id="ctl00_mainContentContainer_ctl13" href="http://technet.microsoft.com/en-us/sqlserver/dd547419.aspx">Module 12: Backup and Recovery</a><br />
<a id="ctl00_mainContentContainer_ctl14" href="http://technet.microsoft.com/en-us/sqlserver/dd547420.aspx">Module 13: Performance Tuning</a><br />
<a id="ctl00_mainContentContainer_ctl15" href="http://technet.microsoft.com/en-us/sqlserver/dd547424.aspx">Module 14: Scalability and High Availability</a><br />
<a id="ctl00_mainContentContainer_ctl16" href="http://technet.microsoft.com/en-us/sqlserver/dd547425.aspx">Module 15: Monitoring</a></p>
<p style="text-align:justify;">Reference: <strong>Pinal Dave (</strong><a href="http://blog.sqlauthority.com/" target="_blank"><strong>http://blog.SQLAuthority.com</strong></a><strong>),</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[User has grant access to which procedures?]]></title>
<link>http://mattclingan.wordpress.com/2009/11/20/user-has-grant-access-to-which-procedures/</link>
<pubDate>Fri, 20 Nov 2009 16:29:47 +0000</pubDate>
<dc:creator>matt</dc:creator>
<guid>http://mattclingan.wordpress.com/2009/11/20/user-has-grant-access-to-which-procedures/</guid>
<description><![CDATA[How to get the list of objects (stored procedures, specifically) for which a user has access SELECT ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>How to get the list of objects (stored procedures, specifically) for which a user has access</p>
<blockquote><p>SELECT p.name, permiss.permission_name,permiss.state_desc,&#160; princ.name      <br />FROM sys.database_permissions permiss       <br />JOIN sys.database_principals princ       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ON permiss.grantee_principal_id = princ.principal_id       <br />JOIN sys.procedures p       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ON major_id = p.object_id AND princ.name = &#8216;Domain\UserName&#8217;       <br />where permiss.state_desc = &#8216;GRANT&#8217;       </p>
</blockquote>
<p>And here’s how to get the list of objects for which a user doesn’t have access.&#160; It is simply turning the above on it’s head.&#160; Lots of ways to do it, but I kept it this way for readability</p>
<blockquote><p>with ctePROCS as      <br />(       <br />select&#160; p.name       <br />from sys.database_permissions permiss       <br />join sys.database_principals princ       <br />&#160;&#160;&#160;&#160; on permiss.grantee_principal_id = princ.principal_id       <br />join sys.procedures p on&#160;&#160; major_id = p.object_id       <br />&#160; and princ.name = &#8216;Domain\User&#8217;       <br />WHERE permiss.state_desc = &#8216;GRANT&#8217;       <br />&#160; group by p.name       <br />)       <br />SELECT p.name       <br />FROM       <br />sys.procedures p       <br />left join ctePROCS procs on p.name = procs.name       <br />where procs.name is null </p>
</blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQLAuthority News - Book Review - Expert SQL Server 2008 Encryption by Michael Coles]]></title>
<link>http://blog.sqlauthority.com/2009/11/20/sqlauthority-news-book-review-expert-sql-server-2008-encryption-by-michael-coles/</link>
<pubDate>Fri, 20 Nov 2009 01:30:03 +0000</pubDate>
<dc:creator>pinaldave</dc:creator>
<guid>http://blog.sqlauthority.com/2009/11/20/sqlauthority-news-book-review-expert-sql-server-2008-encryption-by-michael-coles/</guid>
<description><![CDATA[Expert SQL Server 2008 Encryption (Paperback) Michael Coles (Author), Rodney Landrum (Author) Link t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;"><strong>Expert SQL Server 2008 Encryption (Paperback)</strong><br />
<em>Michael Coles (Author), Rodney Landrum (Author)</em></p>
<p style="text-align:justify;"><em><img class="alignnone" src="http://www.pinaldave.com/bimg/encryptionbook.gif" alt="" width="272" height="359" /><br />
</em></p>
<p style="text-align:justify;"><strong><a href="http://www.amazon.com/dp/1430224649/" target="_blank">Link to Amazon</a></strong></p>
<p style="text-align:justify;">“What is your opinion on encryption? What I mean is: In a world filled with data, how do you see encryption?” This is the precise question Michael Coles posed to me on March 3<sup>rd</sup> of this year, while we were heading to Starbucks in Seattle. We were both attending the Microsoft MVP Summit there.</p>
<p style="text-align:justify;">In the information era, security has become one of the most vital aspects of life. Although the topic may seem a little mundane, its importance cannot be overemphasized. It is the pillar of the information age and I shudder to think where we would be without it. We don’t leave our houses unlocked and risk thieves or opportunists taking off with our valuables. We also often take precautions, not only to preserve the precious, but also to avoid the sheer hassle of replacement and misuse. So too it should be with our information.</p>
<p style="text-align:justify;">Encryption’s roots are extremely old and it has resolved numerous security problems over the years. In days gone by, couriers were entrusted with letters sealed with a royal wax stamp. If on delivery, the seal was broken, it was obvious that there had been a security breach. This very concept evolved as CRC checksum and developed into a complex algorithm.  While CRC checksum alerted the end user to the fact that content had been modified, its limitation was that it allowed manipulation of the content to occur in the first place. With encryption, only the authenticated owner can access and modify content.</p>
<p style="text-align:justify;">In response to Michael’s question, I began to tell him what I knew about public and private keys. He looked at me doubtfully and asked me directly if I had ever used encryption in my career. My reluctant answer to this was “No”. He strongly suggested that I not underestimate its capabilities and explore its possibilities. I took his advice and have since implemented encryption for many of my clients, who are now far safer from unauthorized access to data.</p>
<p style="text-align:justify;">To be very honest, in my experience, not many people know much about the subject beyond a little about public and private keys.  You do not often find experts discussing symmetric and asymmetric keys, which are just the tip of the iceberg. SQL Server has come a long way with regard to security. Encryption has taken on a whole new meaning in SQL Server 2008. There are many new features such as Extensible Key Management, Transparent Data Encryption, not to mention the pre-2008 ones such as cryptographic hashing, SQL CLR and many more. In performance terms, these are great enhancements.</p>
<p style="text-align:justify;">The one exception is Transparent Data Encryption, where the whole database is encrypted. This can considerably reduce performance if the SQL Server box is not sufficiently powerful. It this is the case, it is a good time to offload all the encryption and decryption to third-party hardware. SQL Server allows third-party management of encryption and decryption through Extensible Key Management.</p>
<p style="text-align:justify;">Extending the earlier courier analogy, consider the fact that even if our letter is secure and safe in our hands, as soon as we hand it to the courier it is exposed to risk and can be compromised. SQL Server 2008 has many new features, which secure data while it is being communicated between applications. A number of features were introduced that check whether data is manipulated during transmission.</p>
<p style="text-align:justify;">Data is everywhere and taking in terms of Terra Bytes (TB) is the current reality. When a large amount of data needs to be handled, there are two major challenges. The first challenge is the actual encryption process and the resources needed to perform it. The second challenge is how to use the data once it has been encrypted.  In a regular database searching through TBs of data can take a very long time. Imagine how long this could take in and encrypted database?</p>
<p style="text-align:justify;">In Seattle, Michael and I discussed these challenges and a few more subjects. The discussion lasted more than four hours. I have always known Michael to be an excellent author. He is renowned in the industry for his expertise of XML and Full Text Search. To my mind, he is an expert who has the extraordinary ability of relating complex concepts in simple terms. No matter how long, boring or complicated the topic, his delivery is always sweet, like chocolate that melts in the mouth.</p>
<p style="text-align:justify;">Michael always addresses uncommon subjects. Perhaps his experience as a Sergeant in the army has given him the spirit to explore the unexplored.  I have never before encountered a single book on the subject of encryption for SQL Server and Michael’s will a “first”.</p>
<p style="text-align:justify;">I recently had the pleasure of reading it and especially like the manner in which he and his co-author, Rodney, explain the significance of encryption. While many of the concepts covered are domain-specific, quite a few topics are common to all and the appendix is a “must read” for anyone planning a security strategy. One thing that really makes this book special is the fact that each module is written independently and you can find solutions by simply reading the relevant one.</p>
<p style="text-align:justify;">I am a hands-on developer and only like books that have a lot of workable examples. With the exception of the first chapter, the book is filled with examples and hands-on experiments. The first chapter in itself is quite unique, as it not only provides a introduction to encryption, but also the very interesting history of encryption.  Even non-technical readers will enjoy this.</p>
<p style="text-align:justify;"><strong>Summary:</strong><br />
It is my great pleasure to welcome this one-of-a- kind book to the SQL Server world. There is no doubt that this book is exceptional and will inspire anyone one who is ready to take their current security mechanism to the next level using encryption.</p>
<p style="text-align:justify;"><strong>Stars : 5 Stars</strong></p>
<p style="text-align:justify;">Reference: <strong>Pinal Dave (</strong><a href="http://blog.sqlauthority.com/" target="_blank"><strong>http://blog.sqlauthority.com</strong></a><strong>)</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How to get all databases on a SQL Server database]]></title>
<link>http://sqlaj.wordpress.com/2009/11/19/how-to-get-all-databases-on-a-sql-server-database/</link>
<pubDate>Thu, 19 Nov 2009 16:52:06 +0000</pubDate>
<dc:creator>AJ Mendo</dc:creator>
<guid>http://sqlaj.wordpress.com/2009/11/19/how-to-get-all-databases-on-a-sql-server-database/</guid>
<description><![CDATA[Here is a very nice stored procedure to use when you don&#8217;t know (or remember) the databases on]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Here is a very nice stored procedure to use when you don&#8217;t know (or remember) the databases on the server you are working on.</p>
<p>sp_databases will return all the database names as well as their size (in kilobytes) and any remarks for the Database Engine, this field will always return NULL.</p>
<p>You can use the database names returned as parameters in the &#8220;USE&#8221; statement to change from database to database depending on the tasks being performed.</p>
<p>Permissions required are CREATE DATABASE, or ALTER ANY DATABASE, or VIEW ANY DEFINITION permission. You must also have access to the database being returned.</p>
<p>More information can be found here<br />
<a href="http://msdn.microsoft.com/en-us/library/ms176070.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ms176070.aspx</a></p>
<p>An example of executing sp_databases.</p>
<p><a href="http://sqlaj.wordpress.com/files/2009/11/sp_databases_example.jpg"><img class="alignnone size-full wp-image-111" title="sp_databases_example" src="http://sqlaj.wordpress.com/files/2009/11/sp_databases_example.jpg" alt="" width="450" height="367" /></a></p>
<p>Another very nice stored procedure you can use is sp_helpdb.<br />
You can use this to get information on all databases on the server, by leaving the database &#8220;name&#8221; off,<br />
or passing the database name to the procedure like so.</p>
<p>sp_helpdb [ [@dbname= ] &#8216;name&#8217; ]</p>
<p>Data returned:</p>
<p>name: database name</p>
<p>db_size: total size of database in megabytes</p>
<p>owner: database owner</p>
<p>dbid: database ID</p>
<p>created: date the database was created</p>
<p>status: this is a comman delimited list of values for the database options currently set</p>
<p>compatibility_level: database compatibility level: 60,65,70,80,90, or 100.</p>
<p>An example of executing sp_helpdb without a database name passed in.</p>
<p><a href="http://sqlaj.wordpress.com/files/2009/11/sp_helpdb_example2.jpg"><img class="alignnone size-full wp-image-116" title="sp_helpdb_example" src="http://sqlaj.wordpress.com/files/2009/11/sp_helpdb_example2.jpg" alt="" width="605" height="170" /></a></p>
<p>An example of executing sp_helpdb with a database name passed in.</p>
<p><a href="http://sqlaj.wordpress.com/files/2009/11/sp_helpdb_dbname_example.jpg"><img class="alignnone size-full wp-image-117" title="sp_helpdb_dbname_example" src="http://sqlaj.wordpress.com/files/2009/11/sp_helpdb_dbname_example.jpg" alt="" width="629" height="241" /></a></p>
<p>Notice the additional information returned when specifying a database?</p>
<p>name: logical filename</p>
<p>fileid: file ID</p>
<p>filename: operating-system file name (physical file name)</p>
<p>filegroup: filegroup in which the file belongs</p>
<p>size: file size in megabytes</p>
<p>maxsize: maximum size the file can grow. A value of UNLIMITED in this field indicates the file grows until the disc is full</p>
<p>growth: growth increment of the file. This indicates the amount of space added to the file each time the new space is needed</p>
<p>usage: usage of the file. For the data file, the value is the &#8220;data only&#8221; and for the log file the value is the &#8220;log only&#8221;</p>
<p>More information can be found here.<br />
<a href="http://msdn.microsoft.com/en-us/library/ms178568.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ms178568.aspx</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL Server - DBCC Commands]]></title>
<link>http://bhaveshgpatel.wordpress.com/2009/11/19/sql-server-dbcc-commands/</link>
<pubDate>Thu, 19 Nov 2009 12:53:41 +0000</pubDate>
<dc:creator>Bhavesh Patel</dc:creator>
<guid>http://bhaveshgpatel.wordpress.com/2009/11/19/sql-server-dbcc-commands/</guid>
<description><![CDATA[DBCC (Database consistency checker) are used to check the consistency of the databases. The DBCC com]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>DBCC</strong><strong> (Database consistency checker</strong>) are used to check the consistency of the databases. The DBCC commands are most useful for performance and trouble shooting exercises.</p>
<p>I have listed down and explained all the DBCC commands available in SQL Server 2005, with examples.</p>
<p>The DBCC Commands broadly falls into four categories:</p>
<ul>
<li>Maintenance</li>
<li>Informational</li>
<li>Validation</li>
<li>Miscellaneous</li>
</ul>
<h2><span style="color:#ff00ff;"><strong>Maintenance Commands</strong></span></h2>
<p>Performs maintenance tasks on a database, index, or filegroup.</p>
<p>1. <strong>CLEANTABLE</strong> – Reclaims space from the dropped variable-length columns in tables or index views.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> CLEANTABLE (<span style="color:#ff0000;">&#8216;AdventureWorks&#8217;,'Person.Contact&#8217;</span>,0)</p>
</div>
<p>2. <strong>DBREINDEX</strong> – Builds one or more indexes for the table in the specified database. (Will be <strong>removed</strong> in the future version, use <span style="color:#0000ff;">ALTER INDEX</span> instead)</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">USE </span>AdventureWorks</p>
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> DBREINDEX (<span style="color:#ff0000;">&#8216;Person.Contact&#8217;,'PK_Contact_ContactID&#8217;</span>,80)</p>
</div>
<p>3. <strong>DROPCLEANBUFFERS</strong> – Removes all clean buffers from buffer pool.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> DROPCLEANBUFFERS</p>
</div>
<p>4. <strong>FREEPROCCACHE</strong> – Removes all elements from the procedure cache</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> FREEPROCCACHE</p>
</div>
<p>5. <strong>INDEXDEFRAG</strong> – Defragments indexes of the specified table or view.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC </span>INDEXDEFRAG (<span style="color:#ff0000;">&#8216;AdventureWorks&#8217;, &#8216;Person.Address&#8217;</span>, PK_Address_AddressID)</p>
</div>
<p>6. <strong>SHRINKDATABASE</strong> – Shrinks the size of the data and log files in the specified database</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC </span>SHRINKDATABASE (<span style="color:#ff0000;">&#8216;AdventureWorks</span>&#8216;, 10)</p>
</div>
<p>7. <strong>SHRINKFILE</strong> &#8211; Shrinks the size of the specified data or log file for the current database or empties a file by moving the data from the specified file to other files in the same filegroup, allowing the file to be removed from the database.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">USE</span> AdventureWorks;</p>
<p style="padding-left:30px;"><span style="color:#008000;">&#8211; Shrink the truncated log file to 1 MB.</span></p>
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> SHRINKFILE (AdventureWorks_Log, 1)</p>
</div>
<p>8. <strong>UPDATEUSAGE</strong> &#8211; Reports and corrects pages and row count inaccuracies in the catalog views.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> UPDATEUSAGE (AdventureWorks)</p>
</div>
<h2><span style="color:#ff00ff;"><strong>Informational Commands</strong></span></h2>
<p>Performs tasks that gather and display various types of information.</p>
<p>1. <strong>CONCURRENCYVIOLATION</strong> &#8211; is maintained for backward compatibility. It runs but returns no data.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> CONCURRENCYVIOLATION</p>
</div>
<p>2.<strong> INPUTBUFFER</strong> &#8211; Displays the last statement sent from a client to an instance of Microsoft SQL Server 2005.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> INPUTBUFFER (52)</p>
</div>
<p>3. <strong>OPENTRAN</strong> &#8211; Displays information about the oldest active transaction and the oldest distributed and nondistributed replicated transactions, if any, within the specified database.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> OPENTRAN;</p>
</div>
<p>4. <strong>OUTPUTBUFFER</strong> &#8211; Returns the current output buffer in hexadecimal and ASCII format for the specified session_id.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> OUTPUTBUFFER (52)</p>
</div>
<p>5. <strong>PROCCACHE</strong> &#8211; Displays information in a table format about the procedure cache.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC </span>PROCCACHE</p>
</div>
<p>6. <strong>SHOW</strong><strong>_STATISTICS</strong> – Displays the current distribution statistics for the specified target on the specified table</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">USE </span>AdventureWorks</p>
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> SHOW_STATISTICS (<span style="color:#ff0000;">&#8216;Person.Address&#8217;</span>, AK_Address_rowguid)</p>
</div>
<p>7. <strong>SHOWCONTIG</strong> &#8211; Displays fragmentation information for the data and indexes of the specified table or view.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">USE</span> AdventureWorks</p>
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC </span>SHOWCONTIG (<span style="color:#ff0000;">&#8216;HumanResources.Employee&#8217;</span>);</p>
</div>
<p>8. <strong>SQLPERF</strong> &#8211; Provides transaction log space usage statistics for all databases. It can also be used to reset wait and latch statistics.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> SQLPERF(LOGSPACE)</p>
</div>
<p>9. <strong>TRACESTATUS</strong> &#8211; Displays the status of trace flags.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC </span>TRACESTATUS(-1)</p>
</div>
<p>10. <strong>USEROPTIONS</strong> &#8211; Returns the SET options active (set) for the current connection.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> USEROPTIONS</p>
</div>
<p><strong> </strong></p>
<h2><span style="color:#ff00ff;"><strong>Validation Commands</strong></span></h2>
<p>Performs validation operations on a database, table, index, catalog, filegroup, or allocation of database pages.</p>
<p>1. <strong>CHECKALLOC</strong> &#8211; Checks the consistency of disk space allocation structures for a specified database.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> CHECKALLOC (AdventureWorks)</p>
</div>
<p>2. <strong>CHECKCATALOG</strong> &#8211; Checks for catalog consistency within the specified database.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC </span>CHECKCATALOG (AdventureWorks)</p>
</div>
<p>3. <strong>CHECKCONSTRAINTS</strong> &#8211; Checks the integrity of a specified constraint or all constraints on a specified table in the current database.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> CHECKCONSTRAINTS WITH ALL_CONSTRAINTS</p>
</div>
<p>4. <strong>CHECKDB</strong> &#8211; Checks the logical and physical integrity of all the objects in the specified database.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> CHECKDB (AdventureWorks)</p>
</div>
<p>5. <strong>CHECKFILEGROUP</strong> &#8211; Checks the allocation and structural integrity of all tables and indexed views in the specified filegroup of the current database.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">USE</span> AdventureWorks</p>
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> CHECKFILEGROUP</p>
</div>
<p>6. <strong>CHECKIDENT</strong> &#8211; Checks the current identity value for the specified table and, if it is needed, changes the identity value.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">USE </span>AdventureWorks;</p>
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> CHECKIDENT (<span style="color:#ff0000;">&#8216;HumanResources.Employee&#8217;</span>)</p>
</div>
<p>7. <strong>CHECKTABLE</strong> &#8211; Checks the integrity of all the pages and structures that make up the table or indexed view.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">USE</span> AdventureWorks;</p>
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> CHECKTABLE (<span style="color:#ff0000;">&#8216;HumanResources.Employee&#8217;</span>)</p>
</div>
<h2><span style="color:#ff00ff;"><strong>Miscellaneous Commands</strong></span></h2>
<p>Performs miscellaneous tasks such as enabling trace flags or removing a DLL from memory.</p>
<p>1. <strong>dllname (FREE)</strong> &#8211; Unloads the specified extended stored procedure DLL from memory.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> xp_sample (FREE)</p>
</div>
<p>2. <strong>TRACEOFF</strong> &#8211; Disables the specified trace flags.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> TRACEOFF (3205)</p>
</div>
<p>3. <strong>HELP</strong> &#8211; Returns syntax information for the specified DBCC command.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#008000;">&#8211; List all the DBCC commands</span></p>
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> HELP (<span style="color:#ff0000;">&#8216;?&#8217;</span>)</p>
<p style="padding-left:30px;"><span style="color:#008000;">&#8211; Show the Syntax for a given DBCC commnad</span></p>
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> HELP (<span style="color:#ff0000;">&#8216;checkcatalog&#8217;</span>)</p>
</div>
<p>4. <strong>TRACEON</strong> &#8211; Enables the specified trace flags.</p>
<div style="border:1px solid gray;overflow:auto;font-size:9pt;font-family:Arial,Courier New,Helvetica,sans-serif;width:97.5%;cursor:text;background-color:#fffccf;margin:20px 0 30px;padding:4px;">
<p style="padding-left:30px;"><span style="color:#0000ff;">DBCC</span> TRACEON (3205)</p>
</div>
<p>Good Luck!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Populating a Kimball Date Dimension]]></title>
<link>http://arcanecode.com/2009/11/18/populating-a-kimball-date-dimension/</link>
<pubDate>Thu, 19 Nov 2009 02:37:54 +0000</pubDate>
<dc:creator>arcanecode</dc:creator>
<guid>http://arcanecode.com/2009/11/18/populating-a-kimball-date-dimension/</guid>
<description><![CDATA[I’m a big fan of the Kimball method of Data Warehousing. A common task most of us setting up a new D]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I’m a big fan of the Kimball method of Data Warehousing. A common task most of us setting up a new Data Warehouse face is creating a Date Dimension. In their book, “<a href="http://www.amazon.com/Microsoft-Data-Warehouse-Toolkit-Microsoft-Business-Intelligence/dp/0471267155/ref=sr_1_1?ie=UTF8&#38;s=books&#38;qid=1258596124&#38;sr=8-1" target="_blank">The Microsoft Data Warehouse Toolkit With SQL Server 2005 and the Microsoft Business Intelligence Toolset</a>”, they have an example of a good date dimension table in their books <a href="http://kimballgroup.com/html/booksMDWTtools.html" target="_blank">sample code</a>. My complaint though was not so much with the layout itself, I liked it and found it fairly complete. Instead it was the method they chose to load it. They used an Excel spreadsheet, then a SQL Server Integration Services package to read the Excel file and load the date dimension table. </p>
<p>To me this approach has a couple of drawbacks. First, if you are doing all the loading on the server itself, you may not have Excel loaded. Thus you may be faced with the headache of creating the sheet then figuring out how to get it to a location the server can read. Second, when you go to add more dates in the future, you have to go into the spreadsheet and reset everything, removing what was there before. It can also be quite a headache to go back several years from know and find both SSIS packages and that Excel spreadsheet. Plus after that time changes may be made to both Excel and SSIS that make that solution no longer workable. Finally quite often it’s a DBA setting up the warehouse, and I’ve found there are still a few DBAs who are uncomfortable relying on SSIS, although I’m happy to say that number continues to shrink. </p>
<p>A T-SQL solution was clearly, to me anyway, the superior answer for both ease of use and long term stability. I assumed that as popular as the Kimball method is, someone would have already created a routine to load their style of date dimension, but some Binging and Googling around proved fruitless. I did find some code for loading some very simple date dimensions, but nothing as complete as the Kimball design. So, relishing a good coding challenge, I rolled up my sleeves and went to work. Below is the fruit of my labor, a script for loading a Kimball like date dimension. All you have to do is set the begin and end dates, indicate the offset for your fiscal year, and let ‘er rip. You can easily go back and add more dates by just adjusting the begin and end times. </p>
<p>A few things you should note. First, I did make a few slight modifications to the standard Kimball date dimension table as found in the previously mentioned book. They have a column titled “DateName” which holds the date as a string in YYYY/MM/DD format. As long as I was putting the date in, I decided to add string versions of the date for the US and Europe. These are in MM/DD/YYYY and DD/MM/YYYY formats and the columns are named “DateNameUS” and “DateNameEU” (for European Union) respectively. </p>
<p>Their table also had an audit key, used presumably by the SSIS package. I didn’t really see the need for an audit key for a date table, so I changed it to an identity column so I could have a secondary surrogate key if I needed it, just something to count the number of date rows easily and track the order they were inserted in. </p>
<p>One final, but very important distinction. I was in a post conference session taught by Erik Veerman at SQL PASS 2009. In it he mentioned using Dim and Fact schemas, thus you’d have [Dim].[Date] instead of [dbo].[DimDate]. I liked the idea as it was something I’d been considering myself, so in this version that is what I did. If you use the more traditional naming format of dbo.DimDate you’ll need to tweak the code. </p>
<p>Below is the code to load the Date Dimension table, which is my creation. Under it I placed my modified version of the Kimball Date Dimension table. It’s core code came from the sample code mentioned in the first paragraph then was modified by me. I include it for completeness. </p>
<p><strong><em>Code Sample 1 – Script to load a date dimension.</em></strong></p>
<pre class="code"><span style="color:green;">/*---------------------------------------------------------------------------*/
/* Loads a Date Dimension                                                    */
/*---------------------------------------------------------------------------*/

-- A few notes, this code does nothing to the existing table, no deletes
-- are triggered before hand. Because the DateKey is uniquely indexed,
-- it will simply produce errors if you attempt to insert duplicates.
-- You can however adjust the Begin/End dates and rerun to safely add
-- new dates to the table every year.
--
-- If the begin date is after the end date, no errors occur but nothing
-- happens as the while loop never executes.

</span><span style="color:blue;">SET NOCOUNT ON </span><span style="color:green;">-- turn off all the 1 row inserted messages

-- Hold our dates
</span><span style="color:blue;">DECLARE </span>@BeginDate <span style="color:blue;">DATETIME
DECLARE </span>@EndDate <span style="color:blue;">DATETIME

</span><span style="color:green;">-- Holds a flag so we can determine if the date is the last day of month
</span><span style="color:blue;">DECLARE </span>@LastDayOfMon <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>1<span style="color:gray;">)

</span><span style="color:green;">-- Number of months to add to the date to get the current Fiscal date
</span><span style="color:blue;">DECLARE </span>@FiscalYearMonthsOffset <span style="color:blue;">INT   

</span><span style="color:green;">-- These two counters are used in our loop.
</span><span style="color:blue;">DECLARE </span>@DateCounter <span style="color:blue;">DATETIME    </span><span style="color:green;">--Current date in loop
</span><span style="color:blue;">DECLARE </span>@FiscalCounter <span style="color:blue;">DATETIME  </span><span style="color:green;">--Fiscal Year Date in loop

-- Set the date to start populating and end populating
</span><span style="color:blue;">SET </span>@BeginDate <span style="color:gray;">= </span><span style="color:red;">'01/01/2008'
</span><span style="color:blue;">SET </span>@EndDate <span style="color:gray;">= </span><span style="color:red;">'12/31/2010' 

</span><span style="color:green;">-- Set this to the number of months to add to the current date to get
-- the beginning of the Fiscal year. For example, if the Fiscal year
-- begins July 1, put a 6 there.
-- Negative values are also allowed, thus if your 2010 Fiscal year
-- begins in July of 2009, put a -6.
</span><span style="color:blue;">SET </span>@FiscalYearMonthsOffset <span style="color:gray;">= </span>6

<span style="color:green;">-- Start the counter at the begin date
</span><span style="color:blue;">SET </span>@DateCounter <span style="color:gray;">= </span>@BeginDate

<span style="color:blue;">WHILE </span>@DateCounter <span style="color:gray;">&#60;= </span>@EndDate
      <span style="color:blue;">BEGIN
            </span><span style="color:green;">-- Calculate the current Fiscal date as an offset of
            -- the current date in the loop
            </span><span style="color:blue;">SET </span>@FiscalCounter <span style="color:gray;">= </span><span style="color:magenta;">DATEADD</span><span style="color:gray;">(</span>m<span style="color:gray;">, </span>@FiscalYearMonthsOffset<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">)

            </span><span style="color:green;">-- Set value for IsLastDayOfMonth
            </span><span style="color:blue;">IF </span><span style="color:magenta;">MONTH</span><span style="color:gray;">(</span>@DateCounter<span style="color:gray;">) = </span><span style="color:magenta;">MONTH</span><span style="color:gray;">(</span><span style="color:magenta;">DATEADD</span><span style="color:gray;">(</span>d<span style="color:gray;">, </span>1<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">))
               </span><span style="color:blue;">SET </span>@LastDayOfMon <span style="color:gray;">= </span><span style="color:red;">'N'
            </span><span style="color:blue;">ELSE
               SET </span>@LastDayOfMon <span style="color:gray;">= </span><span style="color:red;">'Y'  

            </span><span style="color:green;">-- add a record into the date dimension table for this date
            </span><span style="color:blue;">INSERT  INTO </span>[Dim]<span style="color:gray;">.</span>[Date]
                    <span style="color:gray;">(
                      </span>[DateKey]
                    <span style="color:gray;">, </span>[FullDate]
                    <span style="color:gray;">, </span>[DateName]
                    <span style="color:gray;">, </span>[DateNameUS]
                    <span style="color:gray;">, </span>[DateNameEU]
                    <span style="color:gray;">, </span>[DayOfWeek]
                    <span style="color:gray;">, </span>[DayNameOfWeek]
                    <span style="color:gray;">, </span>[DayOfMonth]
                    <span style="color:gray;">, </span>[DayOfYear]
                    <span style="color:gray;">, </span>[WeekdayWeekend]
                    <span style="color:gray;">, </span>[WeekOfYear]
                    <span style="color:gray;">, </span>[MonthName]
                    <span style="color:gray;">, </span>[MonthOfYear]
                    <span style="color:gray;">, </span>[IsLastDayOfMonth]
                    <span style="color:gray;">, </span>[CalendarQuarter]
                    <span style="color:gray;">, </span>[CalendarYear]
                    <span style="color:gray;">, </span>[CalendarYearMonth]
                    <span style="color:gray;">, </span>[CalendarYearQtr]
                    <span style="color:gray;">, </span>[FiscalMonthOfYear]
                    <span style="color:gray;">, </span>[FiscalQuarter]
                    <span style="color:gray;">, </span>[FiscalYear]
                    <span style="color:gray;">, </span>[FiscalYearMonth]
                    <span style="color:gray;">, </span>[FiscalYearQtr]
                    <span style="color:gray;">)
            </span><span style="color:blue;">VALUES  </span><span style="color:gray;">(
                      ( </span><span style="color:magenta;">YEAR</span><span style="color:gray;">(</span>@DateCounter<span style="color:gray;">) * </span>10000 <span style="color:gray;">) + ( </span><span style="color:magenta;">MONTH</span><span style="color:gray;">(</span>@DateCounter<span style="color:gray;">)
                                                         * </span>100 <span style="color:gray;">)
                      + </span><span style="color:magenta;">DAY</span><span style="color:gray;">(</span>@DateCounter<span style="color:gray;">)  </span><span style="color:green;">--DateKey
                    </span><span style="color:gray;">, </span>@DateCounter <span style="color:green;">-- FullDate
                    </span><span style="color:gray;">, </span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">YEAR</span><span style="color:gray;">(</span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>4<span style="color:gray;">)) + </span><span style="color:red;">'/'
                      </span><span style="color:gray;">+ RIGHT(</span><span style="color:red;">'00' </span><span style="color:gray;">+ </span><span style="color:magenta;">RTRIM</span><span style="color:gray;">(</span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">DATEPART</span><span style="color:gray;">(</span>mm<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>2<span style="color:gray;">))), </span>2<span style="color:gray;">) + </span><span style="color:red;">'/'
                      </span><span style="color:gray;">+ RIGHT(</span><span style="color:red;">'00' </span><span style="color:gray;">+ </span><span style="color:magenta;">RTRIM</span><span style="color:gray;">(</span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">DATEPART</span><span style="color:gray;">(</span>dd<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>2<span style="color:gray;">))), </span>2<span style="color:gray;">) </span><span style="color:green;">--DateName
                    </span><span style="color:gray;">, RIGHT(</span><span style="color:red;">'00' </span><span style="color:gray;">+ </span><span style="color:magenta;">RTRIM</span><span style="color:gray;">(</span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">DATEPART</span><span style="color:gray;">(</span>mm<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>2<span style="color:gray;">))), </span>2<span style="color:gray;">) + </span><span style="color:red;">'/'
                      </span><span style="color:gray;">+ RIGHT(</span><span style="color:red;">'00' </span><span style="color:gray;">+ </span><span style="color:magenta;">RTRIM</span><span style="color:gray;">(</span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">DATEPART</span><span style="color:gray;">(</span>dd<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>2<span style="color:gray;">))), </span>2<span style="color:gray;">)  + </span><span style="color:red;">'/'
                      </span><span style="color:gray;">+ </span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">YEAR</span><span style="color:gray;">(</span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>4<span style="color:gray;">))</span><span style="color:green;">--DateName
                    </span><span style="color:gray;">, RIGHT(</span><span style="color:red;">'00' </span><span style="color:gray;">+ </span><span style="color:magenta;">RTRIM</span><span style="color:gray;">(</span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">DATEPART</span><span style="color:gray;">(</span>dd<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>2<span style="color:gray;">))), </span>2<span style="color:gray;">) + </span><span style="color:red;">'/'
                      </span><span style="color:gray;">+ RIGHT(</span><span style="color:red;">'00' </span><span style="color:gray;">+ </span><span style="color:magenta;">RTRIM</span><span style="color:gray;">(</span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">DATEPART</span><span style="color:gray;">(</span>mm<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>2<span style="color:gray;">))), </span>2<span style="color:gray;">)  + </span><span style="color:red;">'/'
                      </span><span style="color:gray;">+ </span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">YEAR</span><span style="color:gray;">(</span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>4<span style="color:gray;">))</span><span style="color:green;">--DateName
                    </span><span style="color:gray;">, </span><span style="color:magenta;">DATEPART</span><span style="color:gray;">(</span>dw<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:green;">--DayOfWeek
                    </span><span style="color:gray;">, </span><span style="color:magenta;">DATENAME</span><span style="color:gray;">(</span>dw<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:green;">--DayNameOfWeek
                    </span><span style="color:gray;">, </span><span style="color:magenta;">DATENAME</span><span style="color:gray;">(</span>dd<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:green;">--DayOfMonth
                    </span><span style="color:gray;">, </span><span style="color:magenta;">DATENAME</span><span style="color:gray;">(</span>dy<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:green;">--DayOfYear
                    </span><span style="color:gray;">, </span><span style="color:blue;">CASE </span><span style="color:magenta;">DATENAME</span><span style="color:gray;">(</span>dw<span style="color:gray;">, </span><span style="color:red;">'11/16/2009'</span><span style="color:gray;">)
                        </span><span style="color:blue;">WHEN </span><span style="color:red;">'Saturday' </span><span style="color:blue;">THEN </span><span style="color:red;">'Weekend'
                        </span><span style="color:blue;">WHEN </span><span style="color:red;">'Sunday' </span><span style="color:blue;">THEN </span><span style="color:red;">'Weekend'
                        </span><span style="color:blue;">ELSE </span><span style="color:red;">'Weekday'
                      </span><span style="color:blue;">END </span><span style="color:green;">--WeekdayWeekend
                    </span><span style="color:gray;">, </span><span style="color:magenta;">DATENAME</span><span style="color:gray;">(</span>ww<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:green;">--WeekOfYear
                    </span><span style="color:gray;">, </span><span style="color:magenta;">DATENAME</span><span style="color:gray;">(</span>mm<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:green;">--MonthName
                    </span><span style="color:gray;">, </span><span style="color:magenta;">MONTH</span><span style="color:gray;">(</span>@DateCounter<span style="color:gray;">) </span><span style="color:green;">--MonthOfYear
                    </span><span style="color:gray;">, </span>@LastDayOfMon <span style="color:green;">--IsLastDayOfMonth
                    </span><span style="color:gray;">, </span><span style="color:magenta;">DATENAME</span><span style="color:gray;">(</span>qq<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:green;">--CalendarQuarter
                    </span><span style="color:gray;">, </span><span style="color:magenta;">YEAR</span><span style="color:gray;">(</span>@DateCounter<span style="color:gray;">) </span><span style="color:green;">--CalendarYear
                    </span><span style="color:gray;">, </span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">YEAR</span><span style="color:gray;">(</span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>4<span style="color:gray;">)) + </span><span style="color:red;">'-'
                      </span><span style="color:gray;">+ RIGHT(</span><span style="color:red;">'00' </span><span style="color:gray;">+ </span><span style="color:magenta;">RTRIM</span><span style="color:gray;">(</span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">DATEPART</span><span style="color:gray;">(</span>mm<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>2<span style="color:gray;">))), </span>2<span style="color:gray;">) </span><span style="color:green;">--CalendarYearMonth
                    </span><span style="color:gray;">, </span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">YEAR</span><span style="color:gray;">(</span>@DateCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>4<span style="color:gray;">)) + </span><span style="color:red;">'Q' </span><span style="color:gray;">+ </span><span style="color:magenta;">DATENAME</span><span style="color:gray;">(</span>qq<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">) </span><span style="color:green;">--CalendarYearQtr
                    </span><span style="color:gray;">, </span><span style="color:magenta;">MONTH</span><span style="color:gray;">(</span>@FiscalCounter<span style="color:gray;">) </span><span style="color:green;">--[FiscalMonthOfYear]
                    </span><span style="color:gray;">, </span><span style="color:magenta;">DATENAME</span><span style="color:gray;">(</span>qq<span style="color:gray;">, </span>@FiscalCounter<span style="color:gray;">) </span><span style="color:green;">--[FiscalQuarter]
                    </span><span style="color:gray;">, </span><span style="color:magenta;">YEAR</span><span style="color:gray;">(</span>@FiscalCounter<span style="color:gray;">) </span><span style="color:green;">--[FiscalYear]
                    </span><span style="color:gray;">, </span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">YEAR</span><span style="color:gray;">(</span>@FiscalCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>4<span style="color:gray;">)) + </span><span style="color:red;">'-'
                      </span><span style="color:gray;">+ RIGHT(</span><span style="color:red;">'00' </span><span style="color:gray;">+ </span><span style="color:magenta;">RTRIM</span><span style="color:gray;">(</span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">DATEPART</span><span style="color:gray;">(</span>mm<span style="color:gray;">, </span>@FiscalCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>2<span style="color:gray;">))), </span>2<span style="color:gray;">) </span><span style="color:green;">--[FiscalYearMonth]
                    </span><span style="color:gray;">, </span><span style="color:magenta;">CAST</span><span style="color:gray;">(</span><span style="color:magenta;">YEAR</span><span style="color:gray;">(</span>@FiscalCounter<span style="color:gray;">) </span><span style="color:blue;">AS CHAR</span><span style="color:gray;">(</span>4<span style="color:gray;">)) + </span><span style="color:red;">'Q' </span><span style="color:gray;">+ </span><span style="color:magenta;">DATENAME</span><span style="color:gray;">(</span>qq<span style="color:gray;">, </span>@FiscalCounter<span style="color:gray;">) </span><span style="color:green;">--[FiscalYearQtr]
                    </span><span style="color:gray;">)

            </span><span style="color:green;">-- Increment the date counter for next pass thru the loop
            </span><span style="color:blue;">SET </span>@DateCounter <span style="color:gray;">= </span><span style="color:magenta;">DATEADD</span><span style="color:gray;">(</span>d<span style="color:gray;">, </span>1<span style="color:gray;">, </span>@DateCounter<span style="color:gray;">)
      </span><span style="color:blue;">END

SET NOCOUNT ON </span><span style="color:green;">-- turn the annoying messages back on

-- Select all rows inserted for the final year as a sanity check
</span><span style="color:blue;">SELECT  </span><span style="color:gray;">*
</span><span style="color:blue;">FROM    </span>[Dim]<span style="color:gray;">.</span>[Date]
<span style="color:blue;">WHERE </span>DateKey <span style="color:gray;">&#62; (</span><span style="color:magenta;">YEAR</span><span style="color:gray;">(</span>@EndDate<span style="color:gray;">) * </span>10000<span style="color:gray;">)
</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>&#160;</p>
<p><strong><em>Code Sample 2 – Modified Kimball code to create a Date dimension.</em></strong></p>
<pre class="code"><span style="color:green;">/* Make sure the Dim schema exists */
</span><span style="color:blue;">IF </span><span style="color:magenta;">SCHEMA_ID</span><span style="color:gray;">(</span><span style="color:red;">'Dim'</span><span style="color:gray;">) IS NULL
   </span><span style="color:blue;">EXECUTE</span><span style="color:gray;">(</span><span style="color:red;">'CREATE SCHEMA [Dim] AUTHORIZATION [dbo]'</span><span style="color:gray;">)
</span>GO

<span style="color:green;">/* Drop table DimDate */
</span><span style="color:blue;">IF </span><span style="color:gray;">EXISTS ( </span><span style="color:blue;">SELECT  </span><span style="color:gray;">*
            </span><span style="color:blue;">FROM    </span>dbo<span style="color:gray;">.</span>sysobjects
            <span style="color:blue;">WHERE   </span>id <span style="color:gray;">= </span><span style="color:magenta;">OBJECT_ID</span><span style="color:gray;">(</span>N<span style="color:red;">'[Dim].[Date]'</span><span style="color:gray;">)
                    AND </span><span style="color:magenta;">OBJECTPROPERTY</span><span style="color:gray;">(</span>id<span style="color:gray;">, </span>N<span style="color:red;">'IsUserTable'</span><span style="color:gray;">) = </span>1 <span style="color:gray;">)
   </span><span style="color:blue;">DROP TABLE </span>[Dim]<span style="color:gray;">.</span>[Date]
GO

<span style="color:green;">/* Create table DimDate */
</span><span style="color:blue;">CREATE TABLE </span>[Dim]<span style="color:gray;">.</span>[Date]
       <span style="color:gray;">( </span>[DateKey] <span style="color:blue;">BIGINT </span><span style="color:gray;">NOT NULL
       , </span>[FullDate] <span style="color:blue;">DATETIME </span><span style="color:gray;">NULL
       , </span>[DateName] <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>11<span style="color:gray;">) NULL
       , </span>[DateNameUS] <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>11<span style="color:gray;">) NULL   </span><span style="color:green;">--US Date FORMAT, MM/DD/YYYY
       </span><span style="color:gray;">, </span>[DateNameEU] <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>11<span style="color:gray;">) NULL   </span><span style="color:green;">--European Union Date Format DD/MM/YYYY
       </span><span style="color:gray;">, </span>[DayOfWeek] <span style="color:blue;">TINYINT </span><span style="color:gray;">NULL
       , </span>[DayNameOfWeek] <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>10<span style="color:gray;">) NULL
       , </span>[DayOfMonth] <span style="color:blue;">TINYINT </span><span style="color:gray;">NULL
       , </span>[DayOfYear] <span style="color:blue;">SMALLINT </span><span style="color:gray;">NULL
       , </span>[WeekdayWeekend] <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>7<span style="color:gray;">) NULL
       , </span>[WeekOfYear] <span style="color:blue;">TINYINT </span><span style="color:gray;">NULL
       , </span>[MonthName] <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>10<span style="color:gray;">) NULL
       , </span>[MonthOfYear] <span style="color:blue;">TINYINT </span><span style="color:gray;">NULL
       , </span>[IsLastDayOfMonth] <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>1<span style="color:gray;">) NULL
       , </span>[CalendarQuarter] <span style="color:blue;">TINYINT </span><span style="color:gray;">NULL
       , </span>[CalendarYear] <span style="color:blue;">SMALLINT </span><span style="color:gray;">NULL
       , </span>[CalendarYearMonth] <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>7<span style="color:gray;">) NULL
       , </span>[CalendarYearQtr] <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>7<span style="color:gray;">) NULL
       , </span>[FiscalMonthOfYear] <span style="color:blue;">TINYINT </span><span style="color:gray;">NULL
       , </span>[FiscalQuarter] <span style="color:blue;">TINYINT </span><span style="color:gray;">NULL
       , </span>[FiscalYear] <span style="color:blue;">INT </span><span style="color:gray;">NULL
       , </span>[FiscalYearMonth] <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>9<span style="color:gray;">) NULL
       , </span>[FiscalYearQtr] <span style="color:blue;">CHAR</span><span style="color:gray;">(</span>8<span style="color:gray;">) NULL
       , </span>[AuditKey] <span style="color:blue;">BIGINT IDENTITY </span><span style="color:gray;">NOT NULL
       , </span><span style="color:blue;">CONSTRAINT </span>[PK_DimDate] <span style="color:blue;">PRIMARY KEY CLUSTERED </span><span style="color:gray;">( </span>[DateKey] <span style="color:gray;">)
       )
</span><span style="color:blue;">ON     </span>[PRIMARY]
GO

<span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Table Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Dimension'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'View Name'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Date dimension contains one row for every day, beginning at 1/1/2000. There may also be rows for &#34;hasn''t happened yet.&#34;'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Used in schemas'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Sales (3 roles); Finance; Currency Rates; Sales Quota (2 roles; one at Cal Qtr level)'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'

</span>GO

<span style="color:blue;">INSERT  INTO </span>[Dim]<span style="color:gray;">.</span>[Date]
        <span style="color:gray;">( </span>DateKey
        <span style="color:gray;">, </span>FullDate
        <span style="color:gray;">, </span>[DateName]
        <span style="color:gray;">, </span>[DateNameUS]
        <span style="color:gray;">, </span>[DateNameEU]
        <span style="color:gray;">, </span>[DayOfWeek]
        <span style="color:gray;">, </span>DayNameOfWeek
        <span style="color:gray;">, </span>[DayOfMonth]
        <span style="color:gray;">, </span>[DayOfYear]
        <span style="color:gray;">, </span>WeekdayWeekend
        <span style="color:gray;">, </span>WeekOfYear
        <span style="color:gray;">, </span>[MonthName]
        <span style="color:gray;">, </span>MonthOfYear
        <span style="color:gray;">, </span>IsLastDayOfMonth
        <span style="color:gray;">, </span>CalendarQuarter
        <span style="color:gray;">, </span>CalendarYear
        <span style="color:gray;">, </span>CalendarYearMonth
        <span style="color:gray;">, </span>CalendarYearQtr
        <span style="color:gray;">, </span>FiscalMonthOfYear
        <span style="color:gray;">, </span>FiscalQuarter
        <span style="color:gray;">, </span>FiscalYear
        <span style="color:gray;">, </span>FiscalYearMonth
        <span style="color:gray;">, </span>FiscalYearQtr
        <span style="color:gray;">)
</span><span style="color:blue;">VALUES  </span><span style="color:gray;">( -</span>1
        <span style="color:gray;">, NULL
        , </span><span style="color:red;">'Unknown'
        </span><span style="color:gray;">, </span><span style="color:red;">'Unknown'
        </span><span style="color:gray;">, </span><span style="color:red;">'Unknown'
        </span><span style="color:gray;">, NULL
        , </span><span style="color:red;">'Unknown'
        </span><span style="color:gray;">, NULL
        , NULL
        , </span><span style="color:red;">'Unknown'
        </span><span style="color:gray;">, NULL
        , </span><span style="color:red;">'Unknown'
        </span><span style="color:gray;">, NULL
        , </span><span style="color:red;">'N'
        </span><span style="color:gray;">, NULL
        , NULL
        , </span><span style="color:red;">'Unknown'
        </span><span style="color:gray;">, </span><span style="color:red;">'Unknown'
        </span><span style="color:gray;">, NULL
        , NULL
        , NULL
        , </span><span style="color:red;">'Unknown'
        </span><span style="color:gray;">, </span><span style="color:red;">'Unknown'
        </span><span style="color:gray;">)
</span>GO

<span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Surrogate primary key'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DateKey' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Full date as a SQL date (time=00:00:00)'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FullDate' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Standard Date Format of YYYY/MM/DD'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DateName' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Standard US Date Format of MM/DD/YYYY'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DateNameUS' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Standard European Union Date Format of DD/MM/YYYY'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DateNameEU' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Number of the day of week; Sunday = 1'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfWeek' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Day name of week'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayNameOfWeek' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Number of the day in the month'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Number of the day in the year'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Is today a weekday or a weekend'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'WeekdayWeekend' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Week of year'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'WeekOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Month name'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'MonthName' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Month of year'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'MonthOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Is this the last day of the calendar month?'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'IsLastDayOfMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Calendar quarter'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarQuarter' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Calendar year'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Calendar year and month'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYearMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Calendar year and quarter'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYearQtr' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Fiscal month of year (1..12). FY starts in July'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalMonthOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Fiscal quarter'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalQuarter' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Fiscal year. Fiscal year begins in July.'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Fiscal year and month'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYearMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Fiscal year and quarter'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYearQtr' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Description'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'What process loaded this row?'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'AuditKey' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'FK To'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'DimAudit.AuditKey'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'AuditKey' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'20041123'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DateKey' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'11/23/2004'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FullDate' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'23-Nov-2004'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DateName' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1..7'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfWeek' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Sunday'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayNameOfWeek' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1..31'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1..365'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Weekday, Weekend'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'WeekdayWeekend' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1..52 or 53'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'WeekOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'November'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'MonthName' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1, 2, …, 12'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'MonthOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Y, N'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'IsLastDayOfMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1, 2, 3, 4'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarQuarter' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'2004'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'2004-01'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYearMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'2004Q1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYearQtr' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1, 2, …, 12'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalMonthOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1, 2, 3, 4'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalQuarter' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'2004'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'FY2004-01'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYearMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Example Values'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'FY2004Q1'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYearQtr' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DateName' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfWeek' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayNameOfWeek' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'WeekdayWeekend' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'WeekOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'MonthName' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'MonthOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'IsLastDayOfMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarQuarter' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYearMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYearQtr' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalMonthOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalQuarter' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYearMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'SCD  Type'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'1'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYearQtr' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DateKey' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FullDate' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DateName' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfWeek' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayNameOfWeek' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DayOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'WeekdayWeekend' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'WeekOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'MonthName' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'MonthOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'IsLastDayOfMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarQuarter' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYearMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'CalendarYearQtr' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalMonthOfYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalQuarter' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYear' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYearMonth' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">, </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived'</span><span style="color:gray;">,
  </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">,
  </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'FiscalYearQtr' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Source System'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'Derived in ETL'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">, </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">,
  </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">, </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">,
  </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'AuditKey' </span><span style="color:gray;">;
</span><span style="color:blue;">EXEC </span>sys.sp_addextendedproperty @name <span style="color:gray;">= </span>N<span style="color:red;">'Comments'</span><span style="color:gray;">,
  </span>@value <span style="color:gray;">= </span>N<span style="color:red;">'In the form: yyyymmdd'</span><span style="color:gray;">, </span>@level0type <span style="color:gray;">= </span>N<span style="color:red;">'SCHEMA'</span><span style="color:gray;">,
  </span>@level0name <span style="color:gray;">= </span>N<span style="color:red;">'Dim'</span><span style="color:gray;">, </span>@level1type <span style="color:gray;">= </span>N<span style="color:red;">'TABLE'</span><span style="color:gray;">, </span>@level1name <span style="color:gray;">= </span>N<span style="color:red;">'Date'</span><span style="color:gray;">,
  </span>@level2type <span style="color:gray;">= </span>N<span style="color:red;">'COLUMN'</span><span style="color:gray;">, </span>@level2name <span style="color:gray;">= </span>N<span style="color:red;">'DateKey' </span><span style="color:gray;">;
</span>GO</pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL SERVER - Understanding Table Hints with Examples]]></title>
<link>http://blog.sqlauthority.com/2009/11/19/sql-server-understanding-table-hints-with-examples/</link>
<pubDate>Thu, 19 Nov 2009 01:30:41 +0000</pubDate>
<dc:creator>pinaldave</dc:creator>
<guid>http://blog.sqlauthority.com/2009/11/19/sql-server-understanding-table-hints-with-examples/</guid>
<description><![CDATA[Introduction Today we have a very interesting subject to look at. I tried to look for help online bu]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h3 style="text-align:justify;">Introduction</h3>
<p style="text-align:justify;">Today we have a very interesting subject to look at. I tried to look for help online but have not found any other documentation besides what we have from the Book Online.</p>
<p style="text-align:justify;">Let us try to understand what are the different kinds of hints available in SQL Server and how they are helpful.</p>
<h3 style="text-align:justify;">What is a Hint?</h3>
<p style="text-align:justify;"><em>Hints </em> are options and strong suggestions specified for enforcement by the SQL Server query processor on DML statements. The hints override any execution plan the query optimizer might select for a query.</p>
<p style="text-align:justify;">Before we continue to explore this subject, we need to consider one very important fact and say some words of caution. SQL Server Query optimizer is a very smart tool and it makes a best selection of execution plan. Suggesting hints to the Query Optimizer should be attempted when absolutely necessary and by experienced developers who know exactly what they are doing (or in development as a way to experiment and learn).</p>
<p style="text-align:justify;">There are three different kinds of hints. Let us understand the basics of each of them separately.</p>
<h4 style="text-align:justify;">Join Hint</h4>
<p style="text-align:justify;">This hint is used when more than one table is used in a query. Two or more tables can be joined using different kinds of joins. This hint forces the type of join algorithm that is used. Joins can be used in <code>SELECT</code>, <code>UPDATE </code> and <code>DELETE </code> statements.</p>
<h4 style="text-align:justify;">Query Hint</h4>
<p style="text-align:justify;">This hint is used when certain kind of logic has to be applied to a whole query. Any hint used in the query is applied to the complete query, as opposed to part of it. There is no way to specify that only a certain part of a query should be used with the hint. After any query, the <code>OPTION </code> clause is specified to apply the logic to this query. A query always has any of the following statements: <code>SELECT</code>, <code>UPDATE</code>, <code>DELETE</code>, <code>INSERT </code> or <code>MERGE </code> (SQL 2K8); and this hint can be applied to all of them.</p>
<h4 style="text-align:justify;">Table Hint</h4>
<p style="text-align:justify;">This hint is used when certain kind of locking mechanism of tables has to be controlled. SQL Server query optimizer always puts the appropriate kind of lock on tables, when any of the Transact SQL operations <code>SELECT</code>, <code>UPDATE</code>, <code>DELETE</code>, <code>INSERT </code> or <code>MERGE </code> are used. There are certain cases when the developer knows when and where to override the default behavior of the locking algorithm and these hints are useful in those scenarios.</p>
<p style="text-align:justify;">Let us run the following simple query with different kinds of query hints and observe the actual execution plan. The analysis of execution plan is not part of this article and will be covered in future.</p>
<div id="highlighter_563028" style="text-align:justify;"><code style="font-size:12px;"><span style="color:blue;">USE </span><span style="color:black;">AdventureWorks<br />
GO<br />
</span><span style="color:green;">/* No Query Hint */<br />
</span><span style="color:blue;">SELECT </span><span style="color:gray;">*<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">Production.Product </span><span style="color:blue;">AS </span><span style="color:black;">p<br />
</span><span style="color:blue;">INNER JOIN </span><span style="color:black;">Sales.SalesOrderDetail </span><span style="color:blue;">AS </span><span style="color:black;">sod </span><span style="color:blue;">ON </span><span style="color:black;">p.ProductID </span><span style="color:blue;">= </span><span style="color:black;">sod.ProductID<br />
</span><span style="color:blue;">WHERE </span><span style="color:black;">Weight </span><span style="color:blue;">= </span><span style="color:black;">20.77<br />
GO<br />
</span><span style="color:green;">/* Merge Join Query Hint */<br />
</span><span style="color:blue;">SELECT </span><span style="color:gray;">*<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">Production.Product </span><span style="color:blue;">AS </span><span style="color:black;">p<br />
</span><span style="color:blue;">INNER </span><span style="color:black;">MERGE </span><span style="color:blue;">JOIN </span><span style="color:black;">Sales.SalesOrderDetail </span><span style="color:blue;">AS </span><span style="color:black;">sod </span><span style="color:blue;">ON </span><span style="color:black;">p.ProductID </span><span style="color:blue;">= </span><span style="color:black;">sod.ProductID<br />
</span><span style="color:blue;">WHERE </span><span style="color:black;">Weight </span><span style="color:blue;">= </span><span style="color:black;">20.77<br />
GO<br />
</span><span style="color:green;">/* Hash Join Query Hint */<br />
</span><span style="color:blue;">SELECT </span><span style="color:gray;">*<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">Production.Product </span><span style="color:blue;">AS </span><span style="color:black;">p<br />
</span><span style="color:blue;">INNER </span><span style="color:black;">HASH </span><span style="color:blue;">JOIN </span><span style="color:black;">Sales.SalesOrderDetail </span><span style="color:blue;">AS </span><span style="color:black;">sod </span><span style="color:blue;">ON </span><span style="color:black;">p.ProductID </span><span style="color:blue;">= </span><span style="color:black;">sod.ProductID<br />
</span><span style="color:blue;">WHERE </span><span style="color:black;">Weight </span><span style="color:blue;">= </span><span style="color:black;">20.77<br />
GO<br />
</span><span style="color:green;">/* Loop Join Query Hint */<br />
</span><span style="color:blue;">SELECT </span><span style="color:gray;">*<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">Production.Product </span><span style="color:blue;">AS </span><span style="color:black;">p<br />
</span><span style="color:blue;">INNER </span><span style="color:black;">LOOP </span><span style="color:blue;">JOIN </span><span style="color:black;">Sales.SalesOrderDetail </span><span style="color:blue;">AS </span><span style="color:black;">sod </span><span style="color:blue;">ON </span><span style="color:black;">p.ProductID </span><span style="color:blue;">= </span><span style="color:black;">sod.ProductID<br />
</span><span style="color:blue;">WHERE </span><span style="color:black;">Weight </span><span style="color:blue;">= </span><span style="color:black;">20.77<br />
GO<br />
</span><span style="color:green;">/* Remote Join Query Hint */<br />
</span><span style="color:blue;">SELECT </span><span style="color:gray;">*<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">Production.Product </span><span style="color:blue;">AS </span><span style="color:black;">p<br />
</span><span style="color:blue;">INNER </span><span style="color:black;">REMOTE </span><span style="color:blue;">JOIN </span><span style="color:black;">Sales.SalesOrderDetail </span><span style="color:blue;">AS </span><span style="color:black;">sod </span><span style="color:blue;">ON </span><span style="color:black;">p.ProductID </span><span style="color:blue;">= </span><span style="color:black;">sod.ProductID<br />
</span><span style="color:blue;">WHERE </span><span style="color:black;">Weight </span><span style="color:blue;">= </span><span style="color:black;">20.77<br />
GO </span></code></div>
<p style="text-align:justify;">The above query will produce the following query execution plan.</p>
<p style="text-align:justify;"><img src="http://www.pinaldave.com/bimg/sql-join.png" alt="" width="550" height="557" /></p>
<p style="text-align:justify;">In this article we will focus mainly on Join Hints. We will discuss other kinds of hints and their usage in a different article. There are a total of four kinds of join hints available.</p>
<h3 style="text-align:justify;">Loop Join</h3>
<p style="text-align:justify;">This join is also commonly known as <em>nested iteration</em>. This kind of join is composed by an outer loop and an inner loop. When the query runs for each row of the outer loop, the inner loop is executed completely. This join is effective only when the outer loop query is small and the inner loop query has all the proper optimizations applied. This join method is very useful with small transactions.</p>
<h3 style="text-align:justify;">Merge Join</h3>
<p style="text-align:justify;">This join has the unique requirement for tables involved in the operation to be sorted. This join keeps both of the tables sorted in parallel and compares each table row by row simultaneously with each other. It compares one row of the first table with one row of the second table. If they are equal, that row qualifies; otherwise, this join determines which row of each table has the lower value. Once the lowest value of the table is figured out, it moves on to next row of that table and compares that to the original row. This operation keeps going on until all rows from each table are completely examined. This operation can be very expensive when tables are not sorted and it’s required to sort them before they are joined. If tables have non clustered indexes over them and joins are using the same conditions, there are pretty good chances that this join performs better than other kinds of joins.</p>
<h3 style="text-align:justify;">Hash Join</h3>
<p style="text-align:justify;">This is the most complex of all the other joins. There are two major components of this kind of join &#8211; build query and probe query. First, a smaller table is assigned as build query and a hash table for the same is created. This hash table is compared with the probe table. This comparison of input table and probe table is done one row at a time. One row of the probe table is hashed and compared against the other row, and qualifying rows are checked.</p>
<p style="text-align:justify;">There are three different kinds of hash joins:  in-memory hash join, grace hash join, and recursive hash join. Let us look in more detail at these three kinds of joins.</p>
<h4 style="text-align:justify;">In-Memory Hash Join</h4>
<p style="text-align:justify;">This kind of hash join is used when tables are very small and a complete table can be hashed and loaded in memory.</p>
<h4 style="text-align:justify;">Grace Hash Join</h4>
<p style="text-align:justify;">This kind of hash join is used when tables are comparatively large and don’t fit in memory. Tables will be partitioned at input levels and processed in steps.</p>
<h4 style="text-align:justify;">Recursive Hash Join</h4>
<p style="text-align:justify;">This kind of join is used for complex tables and for tables which are very large and require multilevel of table partitions.</p>
<p style="text-align:justify;">SQL Server query optimizer is a smart tool and it knows when to use the right kind of join. When it comes to hash join, the query optimizer starts conservatively with in-memory hash join. If join is larger than in-memory it moves up to Grace hash join or Recursive hash join. Sometimes the optimizer makes a mistake in identifying a smaller table and it reverses the role of the build and probe table: this is called <em>role reversal</em>.</p>
<h4 style="text-align:justify;">Remote Join</h4>
<p style="text-align:justify;">This is least-used tabled join ever. There is no example for it given in Book On Line. Every Join has two tables associated with it: Left Table and Right Table. The join usually happens on the Left Table. When Remote close is used, joins are performed on the site of Right Join. This join can only be performed on INNER JOIN as in case of OUTER join there may be NULL values on the right table which makes concept of joining on right table logically incorrect.</p>
<h3 style="text-align:justify;">Summary</h3>
<p style="text-align:justify;">We have closely observed different kinds of Join Hints in this article. We will cover the remaining concepts in another article.</p>
<p style="text-align:justify;">Reference: <strong>Pinal Dave (</strong><a href="http://blog.sqlauthority.com/" target="_blank"><strong>http://blog.SQLAuthority.com</strong></a><strong>), </strong><a href="http://dotnetslackers.com/articles/sql/SQL-Server-Understanding-Table-Hints-with-examples.aspx" target="_blank">DNS</a></p>
<p style="text-align:justify;">
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Using tsqlunit to test your T-SQL code]]></title>
<link>http://sqlaj.wordpress.com/2009/11/18/using-tsqlunit-to-test-your-t-sql-code/</link>
<pubDate>Wed, 18 Nov 2009 21:05:29 +0000</pubDate>
<dc:creator>AJ Mendo</dc:creator>
<guid>http://sqlaj.wordpress.com/2009/11/18/using-tsqlunit-to-test-your-t-sql-code/</guid>
<description><![CDATA[There are numerous articles out on the web about using tsqlunit framework to test your applications ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>There are numerous articles out on the web about using tsqlunit framework to test your applications t-sql code. This is not going to be another article on how to use it. I just wanted to give you some information to read and decide for yourself.</p>
<p>tsqlunit project:<br />
<a href="http://sourceforge.net/apps/trac/tsqlunit/" target="_blank">http://sourceforge.net/apps/trac/tsqlunit/</a></p>
<p>SQLServerCentral article:<br />
<a href="http://www.sqlservercentral.com/articles/TSQLUnit/64357/" target="_blank">http://www.sqlservercentral.com/articles/TSQLUnit/64357/</a><br />
You will need to sign-up for an account to read the article. But if you are not already a member you should be. This is a great resource for SQL Server.</p>
<p>Cheers!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Custom detailed Report for Symantec Endpoint Protection]]></title>
<link>http://aldansec.wordpress.com/2009/11/18/custom-detailed-report-for-symantec-endpoint-protection/</link>
<pubDate>Wed, 18 Nov 2009 13:42:33 +0000</pubDate>
<dc:creator>daniel_aldan</dc:creator>
<guid>http://aldansec.wordpress.com/2009/11/18/custom-detailed-report-for-symantec-endpoint-protection/</guid>
<description><![CDATA[Precisava gerar um relatório para a auditoria, com informações detalhadas de todos os computadores e]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Precisava gerar um relatório para a auditoria, com informações detalhadas de todos os computadores e servidores de um determinado grupo, com informações como nome de computador, usuário, memória, versão do agente, último scan, versão da definição de vírus, etc.</p>
<p>Infelizmente não achei nenhum template de report nestes moldes, então resolvi fazer eu mesmo  uma query SQL. Segue abaixo:</p>
<pre class="brush: sql;">
use sem7
select sc.computer_name, sc.current_login_user, sc.operation_system,
sc.processor_type, sc.memory, sc.bios_version, sc.ip_addr1_text, sa.agent_version,
dateadd(s,convert(bigint,sa.last_scan_time)/1000,'01-01-1970 00:00:00') as last_scan_time,
p.version as v_definitions, im.name
from sem_agent as sa
inner join
v_sem_computer as sc on sc.computer_id = sa.computer_id
inner join
pattern as p on sa.pattern_idx = p.pattern_idx
inner join
identity_map as im on sa.group_id = im.id
where
sa.group_id in (SELECT id FROM IDENTITY_MAP
where name like '%My Company%')
and sa.deleted=0
</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[List of Table Constraints in sql server]]></title>
<link>http://viralsarvaiya.wordpress.com/2009/11/18/list-of-table-constraints-in-sql-server/</link>
<pubDate>Wed, 18 Nov 2009 05:55:15 +0000</pubDate>
<dc:creator>viralsarvaiya</dc:creator>
<guid>http://viralsarvaiya.wordpress.com/2009/11/18/list-of-table-constraints-in-sql-server/</guid>
<description><![CDATA[There five type of constrains provided by SQL Server. We shall see each one of then in details 1. Pr]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>There five type of constrains provided by SQL Server. We shall see each one of then in details</p>
<p>1. Primary Key Constraint</p>
<p>A primary key is used to uniquely identify each row in a table. A primary key can consist of one or more then more columns in table. When they consist of more then one column they are called composite key. It ensures unique non-null key.</p>
<p>CREATE TABLE Student(<br />
StudID INT PRIMARY KEY,<br />
StudName VARCHAR(50)<br />
)</p>
<p>or</p>
<p>ALTER TABLE Department ADD PRIMARY KEY (DeptID)</p>
<p>2. Foreign Key Constraint</p>
<p>A foreign key is a field in a table that matches the primary key column of another table. It establishes and enforces a link between data of two tables. It ensures that value points to a valid key.</p>
<p>CREATE TABLE Subjects(<br />
SubID INT,<br />
SubName VARCHAR(50),<br />
StudID INT FOREIGN KEY REFERENCES Student(StudID),<br />
TotalMarks INT,<br />
)</p>
<p>or</p>
<p>ALTER TABLE Subjects(ADD CONSTRAINT StudID_Fk<br />
FOREIGN KEY (StudID) REFERENCES Student(StudID)</p>
<p>3. Unique Constraint</p>
<p>It is similar to Primary Key Constraint. It ensures that every value in the column is unique value. It allows one NULL value.</p>
<p>CREATE TABLE Employee(<br />
EmpID INT,<br />
FirstName VARCHAR(50),<br />
LastName VARCHAR(50),<br />
DeptID INT,<br />
Salary INT,<br />
ProjectCode INT UNIQUE,<br />
)</p>
<p>or</p>
<p>ALTER TABLE Employee ADD UNIQUE (ProjectCode)</p>
<p>4. Nullability Constraint</p>
<p>It defines whether a column will accept a NULL value or not. It is referred to as nullability of the column.</p>
<p>CREATE TABLE Employee(<br />
EmpID INT,<br />
FirstName VARCHAR(50) NOT NULL,<br />
LastName VARCHAR(50),<br />
DeptID INT,<br />
Salary INT,<br />
ProjectCode INT<br />
)</p>
<p>or</p>
<p>ALTER TABLE Employee ALTER COLUMN FirstName VARCHAR(50) NOT NULL;</p>
<p>5. Check Constraint</p>
<p>Check Constraint is extensively used to enforcement of general data-validation rules or simple business rules. Such as correct date range, max value that can be inserted into a table, etc.</p>
<p>CREATE TABLE Employee(<br />
EmpID INT,<br />
FirstName VARCHAR(50),<br />
LastName VARCHAR(50),<br />
DeptID INT,<br />
Salary INT,<br />
ProjectCode INT,<br />
CONSTRAINT chk_sal CHECK (Salary BETWEEN 1000 AND 25000)<br />
)</p>
<p>or</p>
<p>ALTER TABLE Employee<br />
ADD CONSTRAINT chk_salary CHECK (Salary BETWEEN 1000 AND 25000)</p>
<p>Now in the below example show the all the Constraints in one table,</p>
<p>CREATE TABLE Employee(<br />
EmpID INT PRIMARY KEY,<br />
FirstName VARCHAR(50) NOT NULL,<br />
LastName VARCHAR(50),<br />
DeptID INT FOREIGN KEY REFERENCES Department(DeptID),<br />
Salary INT,<br />
ProjectCode INT UNIQUE,<br />
CONSTRAINT chk_salary CHECK (Salary BETWEEN 1000 AND 25000)<br />
)</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL SERVER - Size of Index Table - A Puzzle to Find Index Size for Each Index on Table]]></title>
<link>http://blog.sqlauthority.com/2009/11/18/sql-server-size-of-index-table-a-puzzle-to-find-index-size-for-each-index-on-table/</link>
<pubDate>Wed, 18 Nov 2009 01:30:16 +0000</pubDate>
<dc:creator>pinaldave</dc:creator>
<guid>http://blog.sqlauthority.com/2009/11/18/sql-server-size-of-index-table-a-puzzle-to-find-index-size-for-each-index-on-table/</guid>
<description><![CDATA[It is very easy to find out some basic details of any table using the following Stored Procedure. US]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;">It is very easy to find out some basic details of any table using the following Stored Procedure.</p>
<p style="text-align:justify;"><code style="font-size:12px;"><span style="color:blue;">USE </span><span style="color:black;">AdventureWorks<br />
GO<br />
</span><span style="color:blue;">EXEC </span><span style="color:darkred;">sp_spaceused </span><span style="color:black;">[HumanResources.Shift]<br />
GO</span></code></p>
<p style="text-align:justify;">Above query will return following resultset</p>
<p style="text-align:justify;"><img class="alignnone" src="http://www.pinaldave.com/bimg/sp_spaceused1.jpg" alt="" width="369" height="153" /></p>
<p style="text-align:justify;">The above SP provides basic details such as rows, data size in table, and Index size of all the indexes on the table.</p>
<p style="text-align:justify;">If we look at this carefully, a total of three indexes can be found on the table HumanResources.Shift.</p>
<p style="text-align:justify;"><code style="font-size:12px;"><span style="color:blue;">USE </span><span style="color:black;">AdventureWorks<br />
GO<br />
</span><span style="color:blue;">SELECT </span><span style="color:gray;">*<br />
</span><span style="color:blue;">FROM </span><span style="color:black;">sys.indexes<br />
</span><span style="color:blue;">WHERE </span><span style="color:magenta;">OBJECT_ID </span><span style="color:blue;">= </span><span style="color:magenta;">OBJECT_ID</span><span style="color:gray;">(</span><span style="color:red;">'HumanResources.Shift'</span><span style="color:gray;">)<br />
</span><span style="color:black;">GO</span></code></p>
<p style="text-align:justify;">The above query will give result with query listing all the index on the table.</p>
<p style="text-align:justify;"><img class="alignnone" src="http://www.pinaldave.com/bimg/indexspace.jpg" alt="" width="500" height="248" /></p>
<p style="text-align:justify;">There is a small puzzle for all of you here. The puzzle is to write a query that will return the size for each index that is listed in above query. We need a query that will return an additional column in the above listed query and it should contain the size of the index. In our case, we will have three different sizes, which should add up to a total of 40 KB as shown in earlier query, where the total size is displayed.</p>
<p style="text-align:justify;">I will publish the solution with due credit on this blog.</p>
<p style="text-align:justify;">Reference: <strong>Pinal Dave (</strong><a href="http://blog.sqlauthority.com/" target="_blank"><strong>http://blog.sqlauthority.com</strong></a><strong>)</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL Server 2000 RowID的作法]]></title>
<link>http://kuanglian2000.wordpress.com/2009/11/17/sql-server-2000-rowid%e7%9a%84%e4%bd%9c%e6%b3%95/</link>
<pubDate>Tue, 17 Nov 2009 08:00:17 +0000</pubDate>
<dc:creator>kuanglian2000</dc:creator>
<guid>http://kuanglian2000.wordpress.com/2009/11/17/sql-server-2000-rowid%e7%9a%84%e4%bd%9c%e6%b3%95/</guid>
<description><![CDATA[利用這個作法的話，最近一筆會出現在最上面，順序會反過來 /*取得使用者的查詢結果*/ DECLARE @ChooseSYSID TABLE (SYS_ID INT); INSERT INTO @Cho]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>利用這個作法的話，最近一筆會出現在最上面，順序會反過來</p>
<p><strong><span style="color:#008000;">/*取得使用者的查詢結果*/</span></strong><br />
DECLARE @ChooseSYSID TABLE (SYS_ID INT);<br />
INSERT INTO @ChooseSYSID(SYS_ID)<br />
SELECT SYS_ID FROM dbo.NETBAR<br />
WHERE (@INFORM_ID = &#8216; &#8216;       OR INFORM_ID LIKE @INFORM_ID)<br />
ORDER BY SYS_ID DESC</p>
<p><strong><span style="color:#008000;">/*產生ROWID*/</span></strong><br />
DECLARE @RowNumber TABLE(ROW_ID INT , SYS_ID INT);<br />
INSERT INTO @RowNumber(ROW_ID , SYS_ID)<br />
SELECT<br />
(SELECT COUNT(*) FROM @ChooseSYSID as e2 WHERE e2.SYS_ID &#62;= e1.SYS_ID) as ROW_ID,<br />
e1.SYS_ID<br />
FROM @ChooseSYSID e1</p>
<p><strong><span style="color:#008000;">/*回傳所需筆數*/</span></strong><br />
SELECT C.ROW_ID,A.SYS_ID,INFORM_ID<br />
FROM dbo.NETBAR_HEAD A , @RowNumber C<br />
WHERE A.SYS_ID = C.SYS_ID<br />
AND (C.ROW_ID &#62;= @startIndex AND C.ROW_ID &#60; (@startIndex + @pageSize ))<br />
ORDER BY A.SYS_ID DESC</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How to manage SQL Server transction logs growing beyond available drive space?]]></title>
<link>http://goodoldaddy.wordpress.com/2009/11/16/how-to-manage-transction-logs-growing-beyond-available-drive-space/</link>
<pubDate>Tue, 17 Nov 2009 05:26:55 +0000</pubDate>
<dc:creator>goodoldaddy</dc:creator>
<guid>http://goodoldaddy.wordpress.com/2009/11/16/how-to-manage-transction-logs-growing-beyond-available-drive-space/</guid>
<description><![CDATA[This is a common problem that we encounter with SQL Server databases in full recovery model.   Norma]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This is a common problem that we encounter with SQL Server databases in<strong><span style="text-decoration:underline;"> </span></strong><span style="text-decoration:underline;">full recovery</span> model.   Normally, the data and transaction log files are located on different physical drives to improve performance.   Very often, the drive designated for transaction logs is not large enough to handle rapid transaction log growth due to various reasons.   If unchecked, the transaction logs can grow to a point where the drive runs out of space resulting in a database becoming unavailable.   Unless the transaction logs are not unmanageably large (orders of magnitude larger than the data file), this problem can be solved by the following simple steps.  It is likely that  sufficient drive space is not recovered in the first attempt.  In this case, repeat steps 1 and 2 few iterations to reclaim the drive space.</p>
<p>In the following example, we are trying to reclaim the drive space for a user database called ClientActivityLog</p>
<p>(1) Backup the transaction logs to a suitable backup location.   This step will make most 				of the active virtual log files inactive.  The drive space from these inactive virtual log files can then be reclaimed in the next step</p>
<p><span style="color:#003366;"><strong>USE  MASTER<br />
</strong></span></p>
<p><span style="color:#003366;"><strong>BACKUP LOG ClientActivityLog TO  DISK=&#8217;L:\DBBackup\ClientActivityLog.trn&#8217;  WITH INIT, STATS=10</strong></span></p>
<p>(2) Shrink the transaction logs to reclaim the inactive virtual log files:</p>
<p><strong><span style="color:#003366;">USE ClientActivityLog</span></strong></p>
<p><strong><span style="color:#003366;">DBCC SHRINKFILE(N&#8217;ClientActivityLog&#8217;, TRUNCATEONLY)</span></strong></p>
<p>Very often, we see the transaction log reaching a size that will either take unacceptably long time to backup transaction logs or there is not enough temporary space for the database for attempting the log backups.  In this case,  we can use the following steps: (1) Truncate the log by changing the database recovery model to SIMPLE<span style="color:#000000;">, (2) </span>Shrink the truncated log file, and (3) Reset the database recovery model<span style="text-decoration:underline;">.</span> One thing to keep in mind with this approach is that once we change the recovery model to simple recovery, we lose the ability to restore the database to a point-in-time or to a  specific Log Sequence Number (LSN).</p>
<p>For example, we are trying to recover a user database called ClientActivityLog</p>
<p id="ctl00_MTCS_main_ctl45_ctl00_ctl01_code"><span style="color:#003366;"><strong>USE ClientActivityLog<br />
GO</strong></span></p>
<p><span style="color:#003366;"><strong>ALTER DATABASE ClientActivityLog  SET RECOVERY SIMPLE<br />
GO</strong></span></p>
<p><span style="color:#003366;"><strong>DBCC SHRINKFILE (ClientActivityLog_log, TRUNCATEONLY)<br />
GO</strong></span></p>
<p><span style="color:#003366;"><strong>ALTER DATABASE ClientActivityLog  SET RECOVERY FULL<br />
GO</strong></span></p>
<p>I just found a  good KB article directly related to this topic.</p>
<p><strong><span style="color:#008000;">http://support.microsoft.com/kb/907511</span></strong></p>
<p>Please feel free to comment and let me know if there is a better way to manage this problem or if there are some inaccuracies in this post.</p>
<p>&#8211; P.Reddigari</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[取得目前最大的IDENTITY KEY VALUE]]></title>
<link>http://kuanglian2000.wordpress.com/2009/11/17/%e5%8f%96%e5%be%97%e7%9b%ae%e5%89%8d%e6%9c%80%e5%a4%a7%e7%9a%84identity-key-value/</link>
<pubDate>Tue, 17 Nov 2009 05:24:30 +0000</pubDate>
<dc:creator>kuanglian2000</dc:creator>
<guid>http://kuanglian2000.wordpress.com/2009/11/17/%e5%8f%96%e5%be%97%e7%9b%ae%e5%89%8d%e6%9c%80%e5%a4%a7%e7%9a%84identity-key-value/</guid>
<description><![CDATA[這個回傳的值是己經加1的資料 SELECT IDENT_CURRENT(&#8216;[SALES].[dbo].[Manual_Chapter]&#8216;)]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>這個回傳的值是己經加1的資料</p>
<p>SELECT IDENT_CURRENT(&#8216;[SALES].[dbo].[Manual_Chapter]&#8216;)</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Simple t-sql script for checking integrity and full backups of SQL Server user databases ]]></title>
<link>http://goodoldaddy.wordpress.com/2009/11/16/simple-t-sql-script-for-checking-integrity-and-full-backups-of-user-databases/</link>
<pubDate>Tue, 17 Nov 2009 03:27:24 +0000</pubDate>
<dc:creator>goodoldaddy</dc:creator>
<guid>http://goodoldaddy.wordpress.com/2009/11/16/simple-t-sql-script-for-checking-integrity-and-full-backups-of-user-databases/</guid>
<description><![CDATA[I have decided to post some useful t-sql scripts for SQL Server databases as a part of my blog.   He]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I have decided to post some useful t-sql scripts for SQL Server databases as a part of my blog.   Here is a start.   A part of my present full-time job  is to proactively manage about 50 SQL Server databases in failover clustering environment.   I am relatively new to database administration.  But I am developing lot of interest in database automation.   I would like to invite any of my blog readers to participate actively through exchange of  SQL Server database scripts that might be of some use to any one interested.</p>
<p>Here is a simple script to check the database integrity and then execute full backups of all user databases.   I fully agree with you that this task can always be achieved using a specific Maintenance Plan with these two steps.   Usually, our full maintenance plans include rebuilding indexes in addition to the above steps and it usually takes lot longer to complete.  Also I like simple scripts to just do what you like.   Here is my script which just includes the user databases (db_id &#62; 4) to a backup location (our full and translog backups are normally located in L:\DBBackup folder).   I am using the undocumented system stored procedure sp_MSforeachdb.  Let me know if you find this useful.   Really appreciate your comments and ideas&#8230;</p>
<p>Thanks,</p>
<p>P.Reddigari<span style="font-family:Arial;font-size:x-small;"><span style="color:#888888;"> </span><br />
</span></p>
<blockquote>
<div>
<div><span style="color:#003366;">/* PR &#8212; Check DB consistency and then execute a  full backup for all user databases */<br />
USE master<br />
GO</span></div>
<div><span style="color:#003366;"> </span></div>
<div><span style="color:#008000;"><span style="color:#003366;">DECLARE @RETURN_VALUE int<br />
DECLARE @command1  NVARCHAR(2000)<br />
DECLARE @command2 NVARCHAR(2000)<br />
DECLARE @tNowStr  VARCHAR(64)<br />
SET @tNowStr = REPLACE(CAST(GETDATE() AS VARCHAR(64)),&#8217;  &#8216;,&#8217;_')<br />
SET @tNowStr = REPLACE(@tNowStr,&#8217;:',&#8217;_')<br />
SET @command1 =<br />
&#8216;DECLARE @dbid int USE # SET @dbid = DB_ID(&#8221;#&#8221;) IF @dbid &#62; 4 DBCC  CHECKDB (@dbid) WITH NO_INFOMSGS&#8217;<br />
SET @command2 =<br />
&#8216;DECLARE @dbid int USE # SET @dbid = DB_ID(&#8221;#&#8221;) IF @dbid &#62; 4 BACKUP DATABASE # TO DISK=&#8221;L:DBBackup\&#8217; + &#8216;#&#8217; + &#8216;_&#8217; + @tNowStr + &#8216;.BAK&#8221;&#8217;+ &#8216; WITH INIT, STATS=10&#8242;<br />
EXEC @RETURN_VALUE = sp_MSforeachdb @command1 = @command1, @replacechar=&#8217;#',  @command2 = @command2</span><br />
</span></div>
</div>
</blockquote>
<p><strong><br />
</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL SERVER - 2005 2008 - Backup, Integrity Check and Index Optimization By Ola Hallengren]]></title>
<link>http://blog.sqlauthority.com/2009/11/17/sql-server-2005-2008-backup-integrity-check-and-index-optimization-by-ola-hallengren/</link>
<pubDate>Tue, 17 Nov 2009 01:30:27 +0000</pubDate>
<dc:creator>pinaldave</dc:creator>
<guid>http://blog.sqlauthority.com/2009/11/17/sql-server-2005-2008-backup-integrity-check-and-index-optimization-by-ola-hallengren/</guid>
<description><![CDATA[Script of Backup, Integrity Check and Index Optimization are the most important scripts for any deve]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;">Script of Backup, Integrity Check and Index Optimization are the most important scripts for any developer. SQL Expert and true SQL enthusiast Ola Hallengren is known for his excellent scripts.</p>
<p style="text-align:justify;">Please try it out and let me  know what you think. The documentation is available on <a href="http://ola.hallengren.com/Documentation.html" target="_blank">http://ola.hallengren.com/Documentation.html</a> and the script can be downloaded from <a href="http://ola.hallengren.com/" target="_blank">http://ola.hallengren.com</a>.</p>
<p style="text-align:justify;">Here is brief documentation sent by Ola himself for his script in his own words.</p>
<h2 style="text-align:justify;">Backup Maintenance</h2>
<p style="text-align:justify;">I  think that most of you have experienced the error messages &#8220;BACKUP  LOG cannot be performed because there is no current database backup.&#8221;  and &#8220;Cannot perform a differential backup for database &#8220;&#8221;,  because a current database backup does not exist.&#8221;.</p>
<p style="text-align:justify;">This usually happens when you  have created a new database or when you have changed recovery model  of a database from Simple to Full.</p>
<p style="text-align:justify;">The consequence is that the  database is not getting backed up, until a full backup (or a differential  backup for the BACKUP LOG error message if that can be done) has been  performed. It will also create some noise in your monitoring system.</p>
<p style="text-align:justify;">The solution is to check if  a differential or transaction log backup can be performed before doing  the backup. This can be done by checking sys.master_files.differential_base_lsn  and sys.database_recovery_status.last_log_backup_lsn.</p>
<p style="text-align:justify;">The backup solution that I  have developed has a parameter called @ChangeBackupType.</p>
<p style="text-align:justify;"><code style="font-size:12px;"><span style="color:blue;">EXECUTE </span><span style="color:black;">dbo.DatabaseBackup </span><span style="color:#434343;">@Databases </span><span style="color:blue;">= </span><span style="color:red;">'USER_DATABASES'</span><span style="color:gray;">, </span><span style="color:#434343;">@Directory </span><span style="color:blue;">= </span><span style="color:red;">'C:\Backup'</span><span style="color:gray;">, </span><span style="color:#434343;">@BackupType </span><span style="color:blue;">= </span><span style="color:red;">'LOG'</span><span style="color:gray;">, </span><span style="color:#434343;">@ChangeBackupType </span><span style="color:blue;">= </span><span style="color:red;">'Y'</span></code></p>
<p style="text-align:justify;">If it&#8217;s a new database in Full  recovery model, the backup type for that database and job run will be  changed to full. If it&#8217;s a database that was newly changed to Full recovery  model, then the backup type for that database and job run will be changed  to differential. The next time the job runs a transaction log backup  will be performed for that database.</p>
<p style="text-align:justify;">New databases start getting  backed up quickly and no more &#8220;BACKUP LOG cannot be performed because  there is no current database backup.&#8221; and &#8220;Cannot perform  a differential backup for database &#8220;&#8221;, because a current database  backup does not exist.&#8221;.</p>
<h2 style="text-align:justify;">Index Optimization</h2>
<p style="text-align:justify;">The design idea is categorize all indexes based on their fragmentation level (High, Medium or Low) and whether there are columns with LOB (Large Object) data types. For each category you can define an action. The possible actions are to rebuild indexes online or offline, reorganize indexes, update statistics, reorganize indexes and update statistics or to do nothing.</p>
<p style="text-align:justify;">Here’s an example.</p>
<p style="text-align:justify;"><code style="font-size:12px;"><span style="color:blue;">EXECUTE </span><span style="color:black;">dbo.IndexOptimize<br />
</span><span style="color:#434343;">@Databases </span><span style="color:blue;">= </span><span style="color:red;">'USER_DATABASES'</span><span style="color:gray;">,<br />
</span><span style="color:#434343;">@FragmentationHigh_LOB </span><span style="color:blue;">= </span><span style="color:red;">'INDEX_REBUILD_OFFLINE'</span><span style="color:gray;">,<br />
</span><span style="color:#434343;">@FragmentationHigh_NonLOB </span><span style="color:blue;">= </span><span style="color:red;">'INDEX_REBUILD_ONLINE'</span><span style="color:gray;">,<br />
</span><span style="color:#434343;">@FragmentationMedium_LOB </span><span style="color:blue;">= </span><span style="color:red;">'INDEX_REORGANIZE'</span><span style="color:gray;">,<br />
</span><span style="color:#434343;">@FragmentationMedium_NonLOB </span><span style="color:blue;">= </span><span style="color:red;">'INDEX_REORGANIZE'</span><span style="color:gray;">,<br />
</span><span style="color:#434343;">@FragmentationLow_LOB </span><span style="color:blue;">= </span><span style="color:red;">'NOTHING'</span><span style="color:gray;">,<br />
</span><span style="color:#434343;">@FragmentationLow_NonLOB </span><span style="color:blue;">= </span><span style="color:red;">'NOTHING'</span><span style="color:gray;">,<br />
</span><span style="color:#434343;">@FragmentationLevel1 </span><span style="color:blue;">= </span><span style="color:black;">5</span><span style="color:gray;">,<br />
</span><span style="color:#434343;">@FragmentationLevel2 </span><span style="color:blue;">= </span><span style="color:black;">30</span><span style="color:gray;">,<br />
</span><span style="color:#434343;">@PageCountLevel </span><span style="color:blue;">= </span><span style="color:black;">1000<br />
</span></code></p>
<p style="text-align:justify;">Indexes with a fragmentation above 30% are to be rebuilt, online if possible (no LOB columns), otherwise offline (LOB columns). Indexes with a fragmentation between 5% and 30% are to be reorganized. Indexes with a fragmentation below 5% or a size below 1000 pages are not to be touched.</p>
<p style="text-align:justify;">If you are using partitioning IndexOptimize has a parameter, @PartitionLevel to do index rebuilds and reorganizations on the partition level. If you prefer to do sort operations in tempdb you can do that with the parameter @SortInTempdb and if you would like to set a fillfactor you can do that with the parameter @FillFactor.</p>
<p style="text-align:justify;">Reference: <strong>Pinal Dave (</strong><a href="http://blog.sqlauthority.com/" target="_blank"><strong>http://blog.SQLAuthority.com</strong></a><strong>)</strong></p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:0;width:1px;height:1px;text-align:justify;"><span style="font-family:Times New Roman;font-size:small;">Please try it out and let me  know what you think. The documentation is available on <a href="http://ola.hallengren.com/Documentation.html" target="_blank">http://ola.hallengren.com/Documentation.html</a> and the script can be downloaded from <a href="http://ola.hallengren.com/" target="_blank">http://ola.hallengren.com</a>.</span></div>
</div>]]></content:encoded>
</item>

</channel>
</rss>
