<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://damianwidera.spaces.live.com/mmm2008-05-17_13.22/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fdamianwidera.spaces.live.com%2fcategory%2fKnowledge%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>IT SPACE: Knowledge</title><description /><link>http://DamianWidera.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catKnowledge</link><language>en-US</language><pubDate>Thu, 13 Dec 2007 21:36:36 GMT</pubDate><lastBuildDate>Thu, 13 Dec 2007 21:36:36 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://DamianWidera.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-5475048246849276098</live:id><live:alias>DamianWidera</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>Cumulative update package 3 for SQL Server 2005 Service Pack 2</title><link>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!187.entry</link><description>&lt;div&gt;Microsoft has announced the cumulative update package 3 for SQL Server 2005 Service Pack 2.&lt;/div&gt;
&lt;div&gt;You can find usefull information here: &lt;a href="http://support.microsoft.com/kb/939537"&gt;http://support.microsoft.com/kb/939537&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-5475048246849276098&amp;page=RSS%3a+Cumulative+update+package+3+for+SQL+Server+2005+Service+Pack+2&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=damianwidera.spaces.live.com&amp;amp;GT1=DamianWidera"&gt;</description><comments>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!187.entry#comment</comments><guid isPermaLink="true">http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!187.entry</guid><pubDate>Wed, 22 Aug 2007 21:37:10 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://DamianWidera.spaces.live.com/blog/cns!B404B8A0A66C773E!187/comments/feed.rss</wfw:commentRss><wfw:comment>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!187.entry#comment</wfw:comment><dcterms:modified>2007-08-22T21:37:10Z</dcterms:modified></item><item><title>CTE</title><link>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!182.entry</link><description>&lt;div&gt;
&lt;p style="text-justify:inter-ideograph;margin:0in 0in 0pt;line-height:normal;text-align:justify"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;&lt;span style=""&gt;A Common Table Expression (CTE) is similar to a view or derived query, allowing you to create a temporary query that can be referenced within the scope of a &lt;/span&gt;&lt;span style=""&gt;SELECT&lt;/span&gt;&lt;span style=""&gt;, &lt;/span&gt;&lt;span style=""&gt;INSERT&lt;/span&gt;&lt;span style=""&gt;, &lt;/span&gt;&lt;span style=""&gt;UPDATE&lt;/span&gt;&lt;span style=""&gt;, or &lt;/span&gt;&lt;span style=""&gt;DELETE &lt;/span&gt;&lt;span style=""&gt;query. Unlike a derived query, you don’t need to copy the query definition multiple times each time it is used. You can also use local variables within a CTE definition—something you can’t do in a view definition.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;
&lt;p style="text-justify:inter-ideograph;margin:0in 0in 0pt;line-height:normal;text-align:justify"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size=3&gt;&lt;font face=Calibri&gt;&lt;span style=""&gt;&lt;font color="#0000ff" size=2&gt;
&lt;p&gt;WITH&lt;/font&gt;&lt;font size=2&gt; expression_name [ ( column_name [ ,...n ] &lt;/font&gt;&lt;font color="#808080" size=2&gt;)&lt;/font&gt;&lt;font size=2&gt; ]&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;
&lt;p&gt;AS&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#808080" size=2&gt;(&lt;/font&gt;&lt;font size=2&gt; CTE_query_definition &lt;/font&gt;&lt;font color="#808080" size=2&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;p style="text-justify:inter-ideograph;margin:0in 0in 0pt;line-height:normal;text-align:justify"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;&lt;span style=""&gt;A &lt;/span&gt;&lt;i&gt;&lt;span style=""&gt;non-recursive &lt;/span&gt;&lt;/i&gt;&lt;span style=""&gt;CTE is one that is used within a query without referencing itself. It serves as a temporary result set for the query. A &lt;/span&gt;&lt;i&gt;&lt;span style=""&gt;recursive &lt;/span&gt;&lt;/i&gt;&lt;span style=""&gt;CTE is defined similarly to a non-recursive CTE, only a recursive CTE returns hierarchical self-relating data. Using a CTE to represent recursive data can minimize the amount of code needed compared to other methods.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;
&lt;p style="text-justify:inter-ideograph;margin:0in 0in 0pt;line-height:normal;text-align:justify"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;&lt;span style=""&gt;Examples - soon ;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-5475048246849276098&amp;page=RSS%3a+CTE&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=damianwidera.spaces.live.com&amp;amp;GT1=DamianWidera"&gt;</description><comments>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!182.entry#comment</comments><guid isPermaLink="true">http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!182.entry</guid><pubDate>Fri, 27 Jul 2007 12:00:06 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://DamianWidera.spaces.live.com/blog/cns!B404B8A0A66C773E!182/comments/feed.rss</wfw:commentRss><wfw:comment>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!182.entry#comment</wfw:comment><dcterms:modified>2007-07-27T12:00:06Z</dcterms:modified></item><item><title>RECOMPILE option</title><link>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!181.entry</link><description>&lt;div&gt;&lt;span style="font-size:11pt;font-family:'Calibri','sans-serif'"&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span style="font-size:11pt;font-family:'Calibri','sans-serif'"&gt;SQL Server 2005 has introduced statement-level stored procedure recompilation. Now instead of an entire stored procedure recompiling when indexes are added or data is changed to the referenced tables, only individual statements within the procedure impacted by the change are recompiled. &lt;/span&gt;&lt;span style="font-size:11pt;font-family:'Calibri','sans-serif'"&gt;Typically, you will want to use this &lt;/span&gt;&lt;span style="font-size:11pt;font-family:'Calibri','sans-serif'"&gt;RECOMPILE &lt;/span&gt;&lt;span style="font-size:11pt;font-family:'Calibri','sans-serif'"&gt;query hint within a stored procedure—so that you can control which statements automatically recompile—instead of having to recompile the entire stored procedure. &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size:11pt;font-family:'Calibri','sans-serif'"&gt;&lt;font color="#0000ff" size=2&gt;
&lt;p&gt;SELECT&lt;/font&gt;&lt;font size=2&gt; SalesOrderID,&lt;/font&gt;&lt;font size=2&gt;ProductID&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt;UnitPrice,&lt;/font&gt;&lt;font size=2&gt;OrderQty&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;
&lt;p&gt;FROM&lt;/font&gt;&lt;font size=2&gt; Sales&lt;/font&gt;&lt;font color="#808080" size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;SalesOrderDetail&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;
&lt;p&gt;WHERE&lt;/font&gt;&lt;font size=2&gt; UnitPrice &lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt; @Price&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;
&lt;p&gt;ORDER&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#0000ff" size=2&gt;BY&lt;/font&gt;&lt;font size=2&gt; SalesOrderID&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt;ProductID&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;
&lt;p&gt;OPTION&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#808080" size=2&gt;(&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;RECOMPILE&lt;/font&gt;&lt;font color="#808080" size=2&gt;)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size:11pt;font-family:'Calibri','sans-serif'"&gt;&lt;/span&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-5475048246849276098&amp;page=RSS%3a+RECOMPILE+option&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=damianwidera.spaces.live.com&amp;amp;GT1=DamianWidera"&gt;</description><comments>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!181.entry#comment</comments><guid isPermaLink="true">http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!181.entry</guid><pubDate>Fri, 27 Jul 2007 00:30:07 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://DamianWidera.spaces.live.com/blog/cns!B404B8A0A66C773E!181/comments/feed.rss</wfw:commentRss><wfw:comment>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!181.entry#comment</wfw:comment><dcterms:modified>2007-07-27T00:30:07Z</dcterms:modified></item><item><title>DDL triggers syntax</title><link>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!173.entry</link><description>&lt;div&gt;
&lt;div&gt;
&lt;h3&gt;&lt;a&gt;&lt;/a&gt;&lt;a&gt;&lt;/a&gt; &lt;/h3&gt;
&lt;p&gt;DDL triggers are designed using the following syntax: 
&lt;div&gt;&lt;pre&gt;CREATE TRIGGER trigger_name
ON { ALL SERVER | DATABASE }
[ WITH [ ENCRYPTION ] | [ EXECUTE AS CALLER | SELF | 'user_name' ]
{ FOR | AFTER } { event_type | event_group } [ ,...n ]
AS { sql_statement  [ ; ]  [ ...n ] }
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The On clause controls the scope of the trigger—it is tied to database or server events. Like stored procedure triggers, DDL triggers can be encrypted and executed alternatively by caller, schema owner, or specific database user.&lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-5475048246849276098&amp;page=RSS%3a+DDL+triggers+syntax&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=damianwidera.spaces.live.com&amp;amp;GT1=DamianWidera"&gt;</description><comments>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!173.entry#comment</comments><guid isPermaLink="true">http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!173.entry</guid><pubDate>Wed, 18 Jul 2007 09:27:30 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://DamianWidera.spaces.live.com/blog/cns!B404B8A0A66C773E!173/comments/feed.rss</wfw:commentRss><wfw:comment>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!173.entry#comment</wfw:comment><dcterms:modified>2007-07-18T09:27:30Z</dcterms:modified></item><item><title>DDL triggers - EventData()</title><link>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!172.entry</link><description>&lt;div&gt;
&lt;p&gt;Since DDL triggers are not tied to table modifications, as in the case of DML triggers, they do not have Inserted and Deleted virtual tables. Instead, you can get information about the DDL modification statement that has fired the trigger using a special EventData() function.When the statement that modifies a table is issued, EventData() will return data in the form of an XML document: 
&lt;div&gt;&lt;pre&gt;&lt;font color="#808080" size=2&gt;&lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;EVENT_INSTANCE&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;EventType&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;CREATE_TABLE&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font size=2&gt;EventType&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;PostTime&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;2007&lt;/font&gt;&lt;font color="#808080" size=2&gt;-&lt;/font&gt;&lt;font size=2&gt;07&lt;/font&gt;&lt;font color="#808080" size=2&gt;-&lt;/font&gt;&lt;font size=2&gt;16T21&lt;/font&gt;&lt;font color="#808080" size=2&gt;:&lt;/font&gt;&lt;font size=2&gt;56&lt;/font&gt;&lt;font color="#808080" size=2&gt;:&lt;/font&gt;&lt;font size=2&gt;37.727&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font size=2&gt;PostTime&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;SPID&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;52&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font size=2&gt;SPID&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;ServerName&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;NETSOFT&lt;/font&gt;&lt;font color="#808080" size=2&gt;-&lt;/font&gt;&lt;font size=2&gt;DW&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font size=2&gt;ServerName&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;LoginName&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;sa&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font size=2&gt;LoginName&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;UserName&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;sa&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font size=2&gt;UserName&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;DatabaseName&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;CLR_TEST&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font size=2&gt;DatabaseName&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;SchemaName &lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;dbo &lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font size=2&gt;S chemaName &lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;0bjectName&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;TableTest&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font size=2&gt;Obj ectName&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;0bj ectType&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;TABLE&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font size=2&gt;Obj ectType&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;TSQLCommand&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size=2&gt;&amp;lt;&lt;/font&gt;&lt;font size=2&gt;SetOptions &lt;/font&gt;&lt;font color="#0000ff" size=2&gt;ANSI_NULLS&lt;/font&gt;&lt;font color="#808080" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;ON&amp;quot; &lt;/font&gt;&lt;font color="#0000ff" size=2&gt;ANSI_NULL_DEFAULT&lt;/font&gt;&lt;font color="#808080" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;ON&amp;quot; &lt;/font&gt;&lt;p&gt;&lt;font size=2&gt;	    &lt;font color="#0000ff"&gt;ANSI_PADDING&lt;/font&gt;&lt;font color="#808080"&gt;=&lt;/font&gt;&amp;quot;ON&amp;quot; &lt;font color="#0000ff"&gt;QUOTED_IDENTIFIER&lt;/font&gt;&lt;font color="#808080"&gt;=&lt;/font&gt;&amp;quot;ON&amp;quot; ENCRYPTED&lt;font color="#808080"&gt;=&lt;/font&gt;&amp;quot;FALSE&amp;quot; &lt;font color="#808080"&gt;/&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;&lt;font size=2&gt;&lt;font color="#808080"&gt;&amp;lt;&lt;/font&gt;CommandText&lt;font color="#808080"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;create&lt;/font&gt; &lt;font color="#0000ff"&gt;table&lt;/font&gt; TableTest&lt;font color="#808080"&gt;(&lt;/font&gt;id &lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;font color="#808080"&gt;)&amp;lt;/&lt;/font&gt;CommandText&lt;font color="#808080"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;&lt;font size=2&gt;&lt;font color="#808080"&gt;&amp;lt;/&lt;/font&gt;TSQLCommand&lt;/font&gt;&lt;font color="#808080"&gt;&lt;font size=2&gt;&amp;gt;&lt;/font&gt;&lt;p&gt;&lt;font size=2&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;EVENT_INSTANCE&lt;font color="#808080"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You can use XQuery methods to parse the content of an event document:&lt;font color="#0000ff" size=2&gt; 
&lt;p&gt;CREATE&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#0000ff" size=2&gt;TRIGGER&lt;/font&gt;&lt;font size=2&gt; DDL_ProtectTable_Table&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; 
&lt;p&gt;ON&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#0000ff" size=2&gt;DATABASE 
&lt;p&gt;AFTER&lt;/font&gt;&lt;font size=2&gt; DDL_TABLE_EVENTS&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; 
&lt;p&gt;AS 
&lt;p&gt;declare&lt;/font&gt;&lt;font size=2&gt; @event &lt;/font&gt;&lt;font color="#0000ff" size=2&gt;xml 
&lt;p&gt;set&lt;/font&gt;&lt;font size=2&gt; @event &lt;/font&gt;&lt;font color="#808080" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#ff00ff" size=2&gt;EVENTDATA&lt;/font&gt;&lt;font color="#808080" size=2&gt;()&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; 
&lt;p&gt;INSERT&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#0000ff" size=2&gt;INTO&lt;/font&gt;&lt;font size=2&gt; [dbo]&lt;/font&gt;&lt;font color="#808080" size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;[ActivityLog]&lt;/font&gt;&lt;font color="#808080" size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;[Activity]&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt;[LogDate]&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt;[UserName]&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt;[Note]&lt;font color="#808080"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;
&lt;p&gt;VALUES&lt;/font&gt;&lt;font color="#808080" size=2&gt; 
&lt;p&gt;(&lt;/font&gt;&lt;font size=2&gt;@event&lt;/font&gt;&lt;font color="#808080" size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;value&lt;/font&gt;&lt;font color="#808080" size=2&gt;(&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;'(/EVENT_INSTANCE/EventType)[1]'&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#ff0000" size=2&gt;'nvarchar(100)'&lt;/font&gt;&lt;font color="#808080" size=2&gt;),&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#ff00ff" size=2&gt;GETDATE&lt;/font&gt;&lt;font color="#808080" size=2&gt;(),&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;@event&lt;/font&gt;&lt;font color="#808080" size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;value&lt;/font&gt;&lt;font color="#808080" size=2&gt;(&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;'(/EVENT_INSTANCE/LoginName)[1]'&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#ff0000" size=2&gt;'nvarchar(100)'&lt;/font&gt;&lt;font color="#808080" size=2&gt;),&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;@event&lt;/font&gt;&lt;font color="#808080" size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;value&lt;/font&gt;&lt;font color="#808080" size=2&gt;(&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;'(/EVENT_INSTANCE/TSQLCommand)[1]'&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#ff0000" size=2&gt;'nvarchar(2000)'&lt;/font&gt;&lt;font color="#808080" size=2&gt;)&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#808080" size=2&gt;);&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;GO&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-5475048246849276098&amp;page=RSS%3a+DDL+triggers+-+EventData()&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=damianwidera.spaces.live.com&amp;amp;GT1=DamianWidera"&gt;</description><comments>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!172.entry#comment</comments><guid isPermaLink="true">http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!172.entry</guid><pubDate>Mon, 16 Jul 2007 22:08:41 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://DamianWidera.spaces.live.com/blog/cns!B404B8A0A66C773E!172/comments/feed.rss</wfw:commentRss><wfw:comment>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!172.entry#comment</wfw:comment><dcterms:modified>2007-07-16T22:09:58Z</dcterms:modified></item><item><title>DDL triggers</title><link>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!171.entry</link><description>&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;a&gt;&lt;/a&gt;DDL triggers are new in SQL Server 2005. They can be fired after the engine invokes Data Definition Language (DDL) statements such as:
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Create Table
&lt;li&gt;
&lt;p&gt;Drop Table
&lt;li&gt;
&lt;p&gt;Alter Procedure
&lt;li&gt;
&lt;p&gt;Drop Schema
&lt;li&gt;
&lt;p&gt;Create Login&lt;/ul&gt;
&lt;p&gt;DDL triggers are typically used to audit or control changes in database and server objects. In the following example, the trigger will prevent changes to any table in the current database:
&lt;div&gt;&lt;pre&gt;&lt;font color="#0000ff" size=2&gt;&lt;p&gt;CREATE&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#0000ff" size=2&gt;TRIGGER&lt;/font&gt;&lt;font size=2&gt; DDL_ProtectTable_Table&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&lt;p&gt;ON&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color="#0000ff" size=2&gt;DATABASE&lt;p&gt;FOR&lt;/font&gt;&lt;font size=2&gt; DROP_TABLE&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; ALTER_TABLE&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; CREATE_TABLE&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&lt;p&gt;AS&lt;p&gt;RAISERROR&lt;/font&gt;&lt;font color="#808080" size=2&gt;(&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;'This database contains sensitive data. Changes to the&lt;p&gt;tables are typically not allowed and are rolled back by a trigger.'&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; 16&lt;/font&gt;&lt;font color="#808080" size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; 1&lt;/font&gt;&lt;font color="#808080" size=2&gt;)&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&lt;p&gt;ROLLBACK&lt;/font&gt;&lt;font color="#808080" size=2&gt;;&lt;/font&gt;&lt;font size=2&gt;&lt;p&gt;GO&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;DDL triggers are After triggers, which means that:
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;You can replace the For keyword with After (as in the third line of the preceding example).
&lt;li&gt;
&lt;p&gt;You have to explicitly invoke Rollback statements to cancel the changes made by DDL statements.&lt;/ul&gt;
&lt;p&gt;You can find a great example of DDL triggers on polish Technet sites: &lt;a href="http://www.microsoft.com/poland/technet/article/art0060_01.mspx"&gt;http://www.microsoft.com/poland/technet/article/art0060_01.mspx&lt;/a&gt;
&lt;p&gt;This artcicle was written in cooperation by two polish SQL Server gurus so it is really worth of reading!!!!!&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-5475048246849276098&amp;page=RSS%3a+DDL+triggers&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=damianwidera.spaces.live.com&amp;amp;GT1=DamianWidera"&gt;</description><comments>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!171.entry#comment</comments><guid isPermaLink="true">http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!171.entry</guid><pubDate>Mon, 16 Jul 2007 09:55:41 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://DamianWidera.spaces.live.com/blog/cns!B404B8A0A66C773E!171/comments/feed.rss</wfw:commentRss><wfw:comment>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!171.entry#comment</wfw:comment><dcterms:modified>2007-07-16T09:55:41Z</dcterms:modified></item><item><title>Indexing XML for performance</title><link>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!167.entry</link><description>&lt;p&gt;&lt;font face="Times New Roman, Times, Serif" size=3&gt;Sometimes you want to increase query performance by creating an index on your XML columns. SQL Server supports both primary and secondary indexes on XML columns. SQL Server will index all the tags, values, and paths in reverse&lt;br&gt;order, as path expression searches are faster when the suffix is known.&lt;br&gt;SQL Server stores the XML datatype in a BLOB field. This field can be up to 2GB in size, and&lt;br&gt;parsing this field at runtime to perform queries without an index can be very time consuming. It is important to remember that the&lt;br&gt;base table must have a clustered index to create an XML index on an XML column. You cannot&lt;br&gt;modify the primary key of the table until you drop all XML indexes on the table. If you :&lt;/font&gt;
&lt;p&gt;&lt;font face="Times New Roman, Times, Serif" size=3&gt;-  do a lot of queries but few inserts on your table with the XML column&lt;/font&gt;
&lt;p&gt;&lt;font face="Times New Roman, Times, Serif" size=3&gt;-  XML data is large but you’re often returning only a subset of the data&lt;/font&gt;
&lt;p&gt;&lt;font face="Times New Roman, Times, Serif" size=3&gt; you should consider indexing the column with one or more indexes.&lt;/font&gt;
&lt;p&gt;&lt;font face="Times New Roman, Times, Serif" size=3&gt;Creating the primary index is very straightforward. You can have only one primary XML index&lt;br&gt;per XML column. You can, however, have multiple secondary indexes on an XML column. I will show you examples how it works later.&lt;/font&gt;
&lt;p&gt;&lt;font face="Times New Roman" size=3&gt;&lt;/font&gt; &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-5475048246849276098&amp;page=RSS%3a+Indexing+XML+for+performance&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=damianwidera.spaces.live.com&amp;amp;GT1=DamianWidera"&gt;</description><comments>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!167.entry#comment</comments><guid isPermaLink="true">http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!167.entry</guid><pubDate>Sun, 08 Jul 2007 21:26:59 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://DamianWidera.spaces.live.com/blog/cns!B404B8A0A66C773E!167/comments/feed.rss</wfw:commentRss><wfw:comment>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!167.entry#comment</wfw:comment><dcterms:modified>2007-07-08T21:26:59Z</dcterms:modified></item><item><title>SQL Server Internals - Schedulers</title><link>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!166.entry</link><description>&lt;div&gt;
&lt;h5&gt;&lt;font face="Times New Roman, Times, Serif" color="#000000" size=3&gt;&lt;/font&gt; &lt;/h5&gt;
&lt;p&gt;&lt;font face="Times New Roman" color="#000000" size=3&gt;In SQL Server 2005, each CPU (whether hyperthreaded or physical) has its own scheduler created for it when SQL Server starts up. This is true even if the affinity mask option has been configured so that SQL Server is set to not use all of the available physical CPUs.Each scheduler is set to either ONLINE or OFFLINE based on the affinity mask settings. By default, all schedulers are set to ONLINE. You change then affinity mask value (and change the scheduler status to OFFLINE) without having to restart SQL Server. When a scheduler is switched from ONLINE to OFFLINE then any work already assigned to the scheduler is first completed and no new work is assigned&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-5475048246849276098&amp;page=RSS%3a+SQL+Server+Internals+-+Schedulers&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=damianwidera.spaces.live.com&amp;amp;GT1=DamianWidera"&gt;</description><comments>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!166.entry#comment</comments><guid isPermaLink="true">http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!166.entry</guid><pubDate>Sat, 07 Jul 2007 23:56:38 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://DamianWidera.spaces.live.com/blog/cns!B404B8A0A66C773E!166/comments/feed.rss</wfw:commentRss><wfw:comment>http://DamianWidera.spaces.live.com/Blog/cns!B404B8A0A66C773E!166.entry#comment</wfw:comment><dcterms:modified>2007-07-07T23:58:20Z</dcterms:modified></item></channel></rss>