<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>AaronLowe.net</title>
    <description>SELECT Thoughts FROM dbo.Brain</description>
    <link>http://www.aaronlowe.net/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.5.1.22</generator>
    <language>en-GB</language>
    <blogChannel:blogRoll>http://www.aaronlowe.net/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://blog.magenic.com/blogs/feeds.rss</blogChannel:blink>
    <dc:creator>Aaron Lowe</dc:creator>
    <dc:title>AaronLowe.net</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/AaronLowe" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>VSDBPro – Permissions part 2</title>
      <description>&lt;p&gt;So now that we have the login and the user set up, how do we actually assign permissions?&amp;#160; &lt;/p&gt;  &lt;p&gt;I prefer to assign permissions to roles and add users to roles which mirrors the user/groups of windows, so going down that path we have to create a role (going under Security –&amp;gt; Roles):&lt;/p&gt;  &lt;pre class="brush: sql;"&gt;CREATE ROLE [TestRole]&lt;/pre&gt;

&lt;p&gt;Now comes the part that isn’t very intuitive.&amp;#160; To associate a user with a role you have to go back to the Solution Explorer and actually create a generic user script file (see &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vstsdb/thread/2ced1565-8d7a-4ee9-ba77-45fb8c650faa/" target="_blank"&gt;here&lt;/a&gt;), you can call it whatever you want and place it wherever you want in the project, however if you reverse engineer the database it will be called &amp;lt;ProjectName&amp;gt;.rolememberships.sql under the schema objects folder:&lt;/p&gt;

&lt;pre class="brush: sql;"&gt;EXECUTE sp_addrolemember @rolename = N'TestRole', @membername = N'TestUser';&lt;/pre&gt;

&lt;p&gt;Now we have the role defined and the users as part of the role, we can start adding permissions, this is where you’ll have loads of fun provided you enjoy manually editing xml documents.&amp;#160; Again in Solution Explorer under Properties you’ll see a Database.sqlpermissions.sql file:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/vendoran/3988936366/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Properties" border="0" alt="Properties" src="http://www.aaronlowe.net/image.axd?picture=Properties.png" width="244" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In there you’ll see some xml with examples:&lt;/p&gt;

&lt;pre class="brush: xml;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;?XML:NAMESPACE PREFIX = [default] urn:Microsoft.VisualStudio.Data.Schema.Permissions NS = &amp;quot;urn:Microsoft.VisualStudio.Data.Schema.Permissions&amp;quot; /&amp;gt;&lt;permissions xmlns="urn:Microsoft.VisualStudio.Data.Schema.Permissions" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"&gt;
  &lt;!--  The examples below are provided to illustrate how permissions 
        are defined in the project system for Databases, Objects, 
        and Columns.
        
        GRANT Database Permissions
        
        &lt;PermissionStatement Action ="GRANT"&gt;
          &lt;Permission&gt;CREATE TABLE&lt;/Permission&gt;
          &lt;Grantee&gt;User1&lt;/Grantee&gt;
        &lt;/PermissionStatement&gt;
        
        GRANT Object Permission
        
        &lt;PermissionStatement Action ="GRANT"&gt;
          &lt;Permission&gt;SELECT&lt;/Permission&gt;
          &lt;Grantee&gt;User1&lt;/Grantee&gt;
          &lt;Object Name ="Table1" Schema ="User1" Type ="OBJECT"/&gt;
        &lt;/PermissionStatement&gt;

        DENY Object Permission
        
        &lt;PermissionStatement Action ="DENY"&gt;
          &lt;Permission&gt;DELETE&lt;/Permission&gt;
          &lt;Grantee&gt;User1&lt;/Grantee&gt;
          &lt;Object Name ="Table1" Schema ="User1" Type ="OBJECT"/&gt;
        &lt;/PermissionStatement&gt;

        GRANT Object Column Permission
        
        &lt;PermissionStatement Action ="GRANT"&gt;
          &lt;Permission&gt;SELECT&lt;/Permission&gt;
          &lt;Grantee&gt;User1&lt;/Grantee&gt;
          &lt;Object Name ="Table1" Schema ="User1" Type ="OBJECT"&gt;
            &lt;Columns Treatment ="INCLUDE"&gt;
              &lt;Column Name=”Col1”/&gt;
              &lt;Column Name=”Col2”/&gt;
              &lt;Column Name=”…”/&gt;
            &lt;/Columns&gt;
          &lt;/Object&gt;
        &lt;/PermissionStatement&gt;
  --&gt;
&lt;/permissions&gt;&lt;/pre&gt;

&lt;p&gt;So as you can see while it’s not that intuitive it is pretty straight forward.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=Rnh8OPcpki0:huMAbUUEJ48:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=Rnh8OPcpki0:huMAbUUEJ48:Pmaevz9gpwc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?i=Rnh8OPcpki0:huMAbUUEJ48:Pmaevz9gpwc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AaronLowe/~4/Rnh8OPcpki0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AaronLowe/~3/Rnh8OPcpki0/post.aspx</link>
      <author>Aaron Lowe</author>
      <comments>http://www.aaronlowe.net/post/2009/10/12/VSDBPro-e28093-Permissions-part-2.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aaronlowe.net/post.aspx?id=1ff6a6b9-362e-4cbf-8e2d-06cf85303e92</guid>
      <pubDate>Mon, 12 Oct 2009 09:00:00 -0600</pubDate>
      <category>VSDBPro</category>
      <dc:publisher>Aaron Lowe</dc:publisher>
      <pingback:server>http://www.aaronlowe.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aaronlowe.net/post.aspx?id=1ff6a6b9-362e-4cbf-8e2d-06cf85303e92</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.aaronlowe.net/trackback.axd?id=1ff6a6b9-362e-4cbf-8e2d-06cf85303e92</trackback:ping>
      <wfw:comment>http://www.aaronlowe.net/post/2009/10/12/VSDBPro-e28093-Permissions-part-2.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aaronlowe.net/syndication.axd?post=1ff6a6b9-362e-4cbf-8e2d-06cf85303e92</wfw:commentRss>
    <feedburner:origLink>http://www.aaronlowe.net/post.aspx?id=1ff6a6b9-362e-4cbf-8e2d-06cf85303e92</feedburner:origLink></item>
    <item>
      <title>VSDBPro – Permissions part 1, Logins and Users</title>
      <description>&lt;p&gt;So how do we manage permissions in a Database Project?&amp;#160; Well the logins and users are pretty straight forward, however sadly the grants are not as intuitive as we’d like (unless you find manually editing xml documents intuitive), but the next version is supposed to be gui driven.&amp;#160; However right now I hope you enjoy editing xml.&lt;/p&gt;  &lt;p&gt;So first we take the Server project and create the login for the user (if don’t know the difference between Logins and Users go read &lt;a href="http://twitter.com/kbriankelley" target="_blank"&gt;K. Brian Kelley’s&lt;/a&gt; post &lt;a href="http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/04/21/sql-server-security-basics-logins-vs-users.aspx" target="_blank"&gt;here&lt;/a&gt;, I’ll wait).&amp;#160; If you are in Schema view (and if not, why &lt;a href="http://www.aaronlowe.net/post/2009/10/06/VSDBPro-e28093-multiple-schemas.aspx" target="_blank"&gt;not&lt;/a&gt;?) make sure to go under Server Level Objects –&amp;gt; Security –&amp;gt; Logins, not the Security –&amp;gt; Users path, as you want a Server Login, not a master db User&lt;a href="http://www.flickr.com/photos/vendoran/3988065071/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="Logins" border="0" alt="Logins" align="right" src="http://www.aaronlowe.net/image.axd?picture=Logins_1.png" width="138" height="244" /&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;You’ll also notice in the Add new item dialog that there is a different template for each:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Login (Windows Auth) &lt;/li&gt;    &lt;li&gt;Login (Sql Server) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;At this point you might also be tempted in creation of the login to assign a default database, avoid that temptation.&amp;#160; When you assign a default database, that user database must already exist, however when you deploy the server project (i.e., the master database) there’s a good chance the user database won’t exist yet, I promise we’ll take care of it later though.&lt;/p&gt;  &lt;pre style="width: 90%; height: 47px" class="brush: sql;"&gt;CREATE LOGIN TestLogin WITH PASSWORD = 'P@ssw0rd1'&lt;/pre&gt;

&lt;p&gt;So now that you have a server login in the server project we need to create a database user (remember to &lt;a href="http://www.aaronlowe.net/post/2009/10/02/VSDBPro-project-dependency.aspx" target="_blank"&gt;reference&lt;/a&gt; the server project in the database project).&amp;#160; This time you can go under the Security –&amp;gt; Users path.&lt;/p&gt;

&lt;pre style="width: 89.8%; height: 66px" class="brush: sql;"&gt;CREATE USER [TestUser]
    FOR LOGIN [TestLogin]
    WITH DEFAULT_SCHEMA = dbo;&lt;/pre&gt;

&lt;p&gt;Now we have a login and a user created, lastly we set the default database in the database project post-Deployment script:&lt;/p&gt;

&lt;pre class="brush: sql;"&gt;ALTER LOGIN [TestLogin] WITH DEFAULT_DATABASE=[$(DatabaseName)]&lt;/pre&gt;

&lt;p&gt;As you see I’m using the variable of the database name since I can change the database name for each deployment:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/vendoran/3988865332/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Deployment" border="0" alt="Deployment" src="http://www.aaronlowe.net/image.axd?picture=Deployment.png" width="244" height="126" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Taking a look at pertinent parts of the deployment sql scripts we have (remember this is in SQLCMD mode):&lt;/p&gt;

&lt;pre class="brush: sql;"&gt;/*
Deployment script for master -LocalServer.sql
*/
:setvar DatabaseName &amp;quot;master&amp;quot;
GO
USE [$(DatabaseName)]
GO
PRINT N'Creating TestLogin...';
GO
CREATE LOGIN [TestLogin]
    WITH PASSWORD = N'P@ssw0rd1', DEFAULT_DATABASE = master;
GO
------------------------------
/*
Deployment script for AdventureWorks - AdventureWorks.sql
*/
:setvar DatabaseName &amp;quot;AdventureWorks&amp;quot;
GO
CREATE USER [TestUser] FOR LOGIN [TestLogin];
GO
ALTER LOGIN [TestLogin] WITH DEFAULT_DATABASE=[$(DatabaseName)]
GO&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=VXKM6E0zhuc:tNokQ3--GHs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=VXKM6E0zhuc:tNokQ3--GHs:Pmaevz9gpwc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?i=VXKM6E0zhuc:tNokQ3--GHs:Pmaevz9gpwc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AaronLowe/~4/VXKM6E0zhuc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AaronLowe/~3/VXKM6E0zhuc/post.aspx</link>
      <author>Aaron Lowe</author>
      <comments>http://www.aaronlowe.net/post/2009/10/08/VSDBPro-e28093-Permissions-part-1-Logins-and-Users.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aaronlowe.net/post.aspx?id=75141757-079f-473a-a24f-55c1d0da6469</guid>
      <pubDate>Thu, 08 Oct 2009 07:00:00 -0600</pubDate>
      <category>VSDBPro</category>
      <dc:publisher>Aaron Lowe</dc:publisher>
      <pingback:server>http://www.aaronlowe.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aaronlowe.net/post.aspx?id=75141757-079f-473a-a24f-55c1d0da6469</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aaronlowe.net/trackback.axd?id=75141757-079f-473a-a24f-55c1d0da6469</trackback:ping>
      <wfw:comment>http://www.aaronlowe.net/post/2009/10/08/VSDBPro-e28093-Permissions-part-1-Logins-and-Users.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aaronlowe.net/syndication.axd?post=75141757-079f-473a-a24f-55c1d0da6469</wfw:commentRss>
    <feedburner:origLink>http://www.aaronlowe.net/post.aspx?id=75141757-079f-473a-a24f-55c1d0da6469</feedburner:origLink></item>
    <item>
      <title>VSDBPro – multiple schemas</title>
      <description>&lt;p&gt;Lately I&amp;rsquo;ve been utilizing schemas more frequently in my databases, however the first time I did this in VSDBPro was a pain.&amp;nbsp; The reason for this was I didn&amp;rsquo;t know how to do it, so hopefully this post will save someone else the struggles I went through.&lt;/p&gt;
&lt;p&gt;First I want to highlight the differences between Solution Explorer and Schema View.&amp;nbsp; Solution Explorer is the physical file structure, it doesn&amp;rsquo;t know about relationships other than the folder structure:&lt;a href="http://www.flickr.com/photos/vendoran/3972494113/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="SolutionExplorer[4]" src="http://www.aaronlowe.net/image.axd?picture=SolutionExplorer%5B4%5D.png" border="0" alt="SolutionExplorer[4]" width="161" height="244" align="right" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then there is the schema view which does understand the relationships within the database and models very closely the Management Studio layout:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/vendoran/3972496343/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="SchemaView" src="http://www.aaronlowe.net/image.axd?picture=SchemaView.png" border="0" alt="SchemaView" width="133" height="244" align="left" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As you would imagine there are pros and cons to both.&amp;nbsp; For example if you have invalid syntax for defining a table, you won&amp;rsquo;t even see it in schema view, you&amp;rsquo;ll only see it in solution explorer.&amp;nbsp; However if you have a foreign key relationship that points to a missing column you&amp;rsquo;ll see it in schema view with the warning symbol.&amp;nbsp; Also the schema view has appropriate icons for different object types.&lt;/p&gt;
&lt;p&gt;However back to the issue of schema management.&amp;nbsp; I&amp;rsquo;m very particular about naming conventions and file placement so not trusting the tool (sorry &lt;a href="http://www.dbproj.com/" target="_blank"&gt;Gert&lt;/a&gt;) I figured I new better and would just go into solution explorer and create the new schema myself.&amp;nbsp; No problem: &lt;a href="http://www.flickr.com/photos/vendoran/3972519793/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="MySchema[5]" src="http://www.aaronlowe.net/image.axd?picture=MySchema%5B5%5D.png" border="0" alt="MySchema[5]" width="191" height="244" align="right" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And then I tried to create objects under that scheme however the folder structure wasn&amp;rsquo;t there!!&amp;nbsp; What a pain, so I went out to Windows Explorer copied the file structure from an existing schema, removing all the objects and added them into the project via Solution explorer, all the time wondering about the person who thought this was a good idea.&lt;/p&gt;
&lt;p&gt;However lo and behold had I just switched over to schema view which understands what a schema is and what it can have, I would have been fine.&lt;a href="http://www.flickr.com/photos/vendoran/3972526639/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="MySchemaview" src="http://www.aaronlowe.net/image.axd?picture=MySchemaview.png" border="0" alt="MySchemaview" width="244" height="238" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What&amp;rsquo;s more is that when I created my first table, it automatically not only created the table sql file, it created the entire folder structure, seen below back in solution explorer:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/vendoran/3972538145/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="SolutionFolders" src="http://www.aaronlowe.net/image.axd?picture=SolutionFolders.png" border="0" alt="SolutionFolders" width="138" height="244" align="left" /&gt;&lt;/a&gt;So while we&amp;rsquo;re all used to utilizing Solution Explorer for our projects, for Database projects please be aware and use Schema view unless you have to deal with the actual files themselves.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=9N4OfInZ5B0:A9OauJB_8Es:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=9N4OfInZ5B0:A9OauJB_8Es:Pmaevz9gpwc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?i=9N4OfInZ5B0:A9OauJB_8Es:Pmaevz9gpwc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AaronLowe/~4/9N4OfInZ5B0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AaronLowe/~3/9N4OfInZ5B0/post.aspx</link>
      <author>Aaron Lowe</author>
      <comments>http://www.aaronlowe.net/post/2009/10/06/VSDBPro-e28093-multiple-schemas.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aaronlowe.net/post.aspx?id=862659aa-0af1-4076-a689-1e080d750aee</guid>
      <pubDate>Tue, 06 Oct 2009 10:00:00 -0600</pubDate>
      <category>VSDBPro</category>
      <dc:publisher>Aaron Lowe</dc:publisher>
      <pingback:server>http://www.aaronlowe.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aaronlowe.net/post.aspx?id=862659aa-0af1-4076-a689-1e080d750aee</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aaronlowe.net/trackback.axd?id=862659aa-0af1-4076-a689-1e080d750aee</trackback:ping>
      <wfw:comment>http://www.aaronlowe.net/post/2009/10/06/VSDBPro-e28093-multiple-schemas.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aaronlowe.net/syndication.axd?post=862659aa-0af1-4076-a689-1e080d750aee</wfw:commentRss>
    <feedburner:origLink>http://www.aaronlowe.net/post.aspx?id=862659aa-0af1-4076-a689-1e080d750aee</feedburner:origLink></item>
    <item>
      <title>VSDBPro project dependency</title>
      <description>&lt;p&gt;So I&amp;rsquo;ve been using Visual Studio for Database Professionals (aka VSDBPro, aka DataDude) consistently this year for primarily new database development, both for Data Warehouses and OLTP Databases.&amp;nbsp; This will be the first in what hopefully will become a series of posts about Database projects.&lt;/p&gt;
&lt;p&gt;In Database Professional there is are two types of projects, the database project and the database server project.&amp;nbsp; The database project would be the user database while the database server project would be the master database.&amp;nbsp; Neither one is specific to a particular server or instance, it&amp;rsquo;s a Visual Studio project which can be deployed on a single or multiple instances as you need.&lt;/p&gt;
&lt;p&gt;You can also create dependencies between projects so you can have a database project which had a dependency on a database server project.&amp;nbsp; Why would you do this you ask?&amp;nbsp; The most straight forward example would be the login to user relationship.&amp;nbsp; You could have a database server project which creates your logins, and a database project which then creates the users in that user database mapped back to the logins in the server project.&lt;/p&gt;
&lt;p&gt;You can reference a database project one of three ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Project within the solution&lt;/li&gt;
&lt;li&gt;.schema file (DB projects don&amp;rsquo;t create .dll files)&lt;/li&gt;
&lt;li&gt;Server and database variables&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first two are pretty straight forward as you would just select a project or a .schema from your workspace, so let&amp;rsquo;s look at how you would utilize variables for reference.&amp;nbsp; First here&amp;rsquo;s the screen to create a dependency: &lt;br /&gt;&lt;a href="http://www.flickr.com/photos/vendoran/3967650458/" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DBReference" src="http://www.aaronlowe.net/image.axd?picture=DBReference_1.jpg" border="0" alt="DBReference" width="244" height="194" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Easy enough, just enter the variables and you would have:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/vendoran/3967695646/" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="AddDBReference" src="http://www.aaronlowe.net/image.axd?picture=AddDBReference_1.png" border="0" alt="AddDBReference" width="244" height="195" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;ll notice in the variables the characters %(), this is what tells the Project that these are variables, and I didn&amp;rsquo;t enter the variables this way, I just entered ServerName and when I tabbed out of the filed the $() were automatically added.&amp;nbsp; So now you can see the variables in your command variables dialog (under project properties).&amp;nbsp; The first two are created with every project and you&amp;rsquo;ll see since I specified a value up above, the value is already used, instead of needing to set it at deployment time.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/vendoran/3966923575/" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="CMdVars" src="http://www.aaronlowe.net/image.axd?picture=CMdVars_1.png" border="0" alt="CMdVars" width="244" height="120" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So now that we have the variables, how does this actually get used when we go to deployment?&amp;nbsp; I&amp;rsquo;m glad you asked, on deployment a .sql file is created that utilized sqlcmd mode.&amp;nbsp; So the output at deployment time time will be:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/vendoran/3966931021/" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SQLCmd" src="http://www.aaronlowe.net/image.axd?picture=SQLCmd_1.png" border="0" alt="SQLCmd" width="244" height="213" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Notice that there is no value for the DefaultDataPath, as I never did set it at deployment time.&amp;nbsp; So there you have it, you can now parameterize your project dependencies!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=LwOVgzP_G8o:aXsXclb_JzY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=LwOVgzP_G8o:aXsXclb_JzY:Pmaevz9gpwc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?i=LwOVgzP_G8o:aXsXclb_JzY:Pmaevz9gpwc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AaronLowe/~4/LwOVgzP_G8o" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AaronLowe/~3/LwOVgzP_G8o/post.aspx</link>
      <author>Aaron Lowe</author>
      <comments>http://www.aaronlowe.net/post/2009/10/02/VSDBPro-project-dependency.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aaronlowe.net/post.aspx?id=2c89efd3-bc5b-4e5a-9b66-2d06a7c4e321</guid>
      <pubDate>Fri, 02 Oct 2009 08:00:00 -0600</pubDate>
      <category>SQL Server</category>
      <category>VSDBPro</category>
      <dc:publisher>Aaron Lowe</dc:publisher>
      <pingback:server>http://www.aaronlowe.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aaronlowe.net/post.aspx?id=2c89efd3-bc5b-4e5a-9b66-2d06a7c4e321</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aaronlowe.net/trackback.axd?id=2c89efd3-bc5b-4e5a-9b66-2d06a7c4e321</trackback:ping>
      <wfw:comment>http://www.aaronlowe.net/post/2009/10/02/VSDBPro-project-dependency.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aaronlowe.net/syndication.axd?post=2c89efd3-bc5b-4e5a-9b66-2d06a7c4e321</wfw:commentRss>
    <feedburner:origLink>http://www.aaronlowe.net/post.aspx?id=2c89efd3-bc5b-4e5a-9b66-2d06a7c4e321</feedburner:origLink></item>
    <item>
      <title>ISNUMERIC – maybe…</title>
      <description>&lt;p&gt;So the other day I was working on a T-SQL query that I was using to take data from generic data types and insert it into a strongly typed table.&amp;nbsp; One of the columns was moving from an nvarchar(255) to an decimal data type.&amp;nbsp; As some of the rows had character data in it, I wrote something like this:&lt;/p&gt;
&lt;pre class="brush: sql;"&gt;CASE ISNUMERIC(Col1)
    WHEN 1 THEN CAST(Col1 as decimal(9,4))
    ELSE NULL
END as Col1&lt;/pre&gt;
&lt;p&gt;However when I ran the query, I received this error:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: cou; color: #ff0000; font-size: x-small;"&gt;Error converting data type nvarchar to numeric.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;It took me awhile to figure this one out as you can see I&amp;rdquo;m using ISNUMERIC to check before I convert it to a number, seems pretty straight forward, so what&amp;rsquo;s the bid deal?&lt;/p&gt;
&lt;p&gt;The big deal is that I needed to read the manual&amp;hellip;according to the ISNUMERIC function in &lt;a href="http://msdn.microsoft.com/en-us/library/ms186272.aspx" target="_blank"&gt;BOL&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: cou; font-size: x-small;"&gt;ISNUMERIC returns 1 for some characters that are not numbers, such as plus (+), minus (-), and valid currency symbols such as the dollar sign ($). For a complete list of currency symbols, see &lt;a href="http://msdn.microsoft.com/en-us/library/ms188688.aspx"&gt;Using Monetary Data&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;It turned out I had a row that had a value of a single decimal point and no numbers which caused the problem.&amp;nbsp; So remember, understand what the functions you use actually do, not what you think they do and test!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=V67yqA5SBVc:BZaRs84CAiE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=V67yqA5SBVc:BZaRs84CAiE:Pmaevz9gpwc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?i=V67yqA5SBVc:BZaRs84CAiE:Pmaevz9gpwc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AaronLowe/~4/V67yqA5SBVc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AaronLowe/~3/V67yqA5SBVc/post.aspx</link>
      <author>Aaron Lowe</author>
      <comments>http://www.aaronlowe.net/post/2009/09/30/ISNUMERIC-e28093-maybee280a6.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aaronlowe.net/post.aspx?id=d47376f7-e30e-4c4b-85fc-27e51bf19bf3</guid>
      <pubDate>Wed, 30 Sep 2009 10:00:00 -0600</pubDate>
      <category>SQL Server</category>
      <category>T-SQL</category>
      <dc:publisher>Aaron Lowe</dc:publisher>
      <pingback:server>http://www.aaronlowe.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aaronlowe.net/post.aspx?id=d47376f7-e30e-4c4b-85fc-27e51bf19bf3</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.aaronlowe.net/trackback.axd?id=d47376f7-e30e-4c4b-85fc-27e51bf19bf3</trackback:ping>
      <wfw:comment>http://www.aaronlowe.net/post/2009/09/30/ISNUMERIC-e28093-maybee280a6.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aaronlowe.net/syndication.axd?post=d47376f7-e30e-4c4b-85fc-27e51bf19bf3</wfw:commentRss>
    <feedburner:origLink>http://www.aaronlowe.net/post.aspx?id=d47376f7-e30e-4c4b-85fc-27e51bf19bf3</feedburner:origLink></item>
    <item>
      <title>Welcome back</title>
      <description>&lt;p&gt;Being that I have been involved in a project since the first of the year that pretty much drained me week-to-week, I sadly wasn&amp;rsquo;t able to keep up with my blog.&amp;nbsp; However now that I&amp;rsquo;ve moved onto to a new project I plan on getting back to posting blogs again.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I continue to be very grateful to the SQL community for its hard work and support (I loved &lt;a href="http://24hours.sqlpass.org/"&gt;24 Hours of PASS&lt;/a&gt; and the impromptu associated &lt;a href="http://www.ustream.tv/channel/24-hours-of-pass"&gt;ustream&lt;/a&gt; - 24 hours of &lt;a href="http://thomaslarock.com/"&gt;LaRock&lt;/a&gt;) and hopefully I can give back to the community a portion of what you all have given me.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=BWrl8JM0RfU:n2XjBNaJ5iI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=BWrl8JM0RfU:n2XjBNaJ5iI:Pmaevz9gpwc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?i=BWrl8JM0RfU:n2XjBNaJ5iI:Pmaevz9gpwc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AaronLowe/~4/BWrl8JM0RfU" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AaronLowe/~3/BWrl8JM0RfU/post.aspx</link>
      <author>Aaron Lowe</author>
      <comments>http://www.aaronlowe.net/post/2009/09/28/Welcome-back.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aaronlowe.net/post.aspx?id=08db5222-5fec-41d1-85c3-fae289638be2</guid>
      <pubDate>Mon, 28 Sep 2009 10:00:00 -0600</pubDate>
      <category>Social Networking</category>
      <category>SQL Server</category>
      <dc:publisher>Aaron Lowe</dc:publisher>
      <pingback:server>http://www.aaronlowe.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aaronlowe.net/post.aspx?id=08db5222-5fec-41d1-85c3-fae289638be2</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aaronlowe.net/trackback.axd?id=08db5222-5fec-41d1-85c3-fae289638be2</trackback:ping>
      <wfw:comment>http://www.aaronlowe.net/post/2009/09/28/Welcome-back.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aaronlowe.net/syndication.axd?post=08db5222-5fec-41d1-85c3-fae289638be2</wfw:commentRss>
    <feedburner:origLink>http://www.aaronlowe.net/post.aspx?id=08db5222-5fec-41d1-85c3-fae289638be2</feedburner:origLink></item>
    <item>
      <title>SSIS Blog Post Thank you</title>
      <description>&lt;p&gt;Traditionally I have used SSIS for OLTP data movements, however lately I’ve been loading a Data Warehouse which has slightly different requirements.&amp;#160; I just wanted to drop a quick note to highlight the great resources that already exist out there (and thanks to &lt;a href="http://denglishbi.spaces.live.com/"&gt;Dan English&lt;/a&gt; for pointing me to most of them).&amp;#160; These have been very helpful and I recommend them if you are using SSIS to load a Data Warehouse.&amp;#160; And to the authors - thanks for the posts, they have been very helpful!&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://sqlcat.com/top10lists/archive/2008/10/01/top-10-sql-server-integration-services-best-practices.aspx"&gt;Top 10 SQL Server Integration Services Best Practices&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoft-business-intelligence.blogspot.com/2008/11/scd-slowly-changing-dimension.html"&gt;SCD (Slowly Changing Dimension) optimization in SSIS&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sqlblogcasts.com/blogs/jorg/archive/2008/10/22/ssis-decrease-your-fact-table-loading-time-up-to-40.aspx"&gt;SSIS - Decrease your fact table loading time up to 40%&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.conchango.com/jamiethomson/archive/2005/06/11/SSIS_3A00_-Custom-Logging-Using-Event-Handlers.aspx"&gt;SSIS: Custom Logging Using Event Handlers&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sqlblog.com/blogs/andy_leonard/archive/tags/ETL+Instrumentation/default.aspx"&gt;SSIS Design Pattern - ETL Instrumentation&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=AGmNvInCE6M:JL1pK9Vl0mQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=AGmNvInCE6M:JL1pK9Vl0mQ:Pmaevz9gpwc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?i=AGmNvInCE6M:JL1pK9Vl0mQ:Pmaevz9gpwc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AaronLowe/~4/AGmNvInCE6M" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AaronLowe/~3/AGmNvInCE6M/post.aspx</link>
      <author>Aaron Lowe</author>
      <comments>http://www.aaronlowe.net/post/2009/01/26/SSIS-Blog-Post-Thank-you.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aaronlowe.net/post.aspx?id=de2bf683-0338-4c2e-bbc4-4684d02ec6ac</guid>
      <pubDate>Mon, 26 Jan 2009 20:29:41 -0600</pubDate>
      <category>SSIS</category>
      <dc:publisher>Aaron Lowe</dc:publisher>
      <pingback:server>http://www.aaronlowe.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aaronlowe.net/post.aspx?id=de2bf683-0338-4c2e-bbc4-4684d02ec6ac</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.aaronlowe.net/trackback.axd?id=de2bf683-0338-4c2e-bbc4-4684d02ec6ac</trackback:ping>
      <wfw:comment>http://www.aaronlowe.net/post/2009/01/26/SSIS-Blog-Post-Thank-you.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aaronlowe.net/syndication.axd?post=de2bf683-0338-4c2e-bbc4-4684d02ec6ac</wfw:commentRss>
    <feedburner:origLink>http://www.aaronlowe.net/post.aspx?id=de2bf683-0338-4c2e-bbc4-4684d02ec6ac</feedburner:origLink></item>
    <item>
      <title>Deprecate, Depreciate, Discontinue Deciphered</title>
      <description>&lt;p&gt;Don’t you just love alliteration? :) &lt;/p&gt;  &lt;p&gt;I’ve now dealt with few migrations from SQL 2000 to SQL 2005; SQL 2005 to SQL 2008 and SQL 2000 to SQL 2008.&amp;#160; However there still seems to be a lot of confusion around what is supported on which version and whether something is deprecated, depreciated or discontinued.&amp;#160; So first off, let’s get some definitions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://dictionary.reference.com/browse/Deprecate"&gt;Deprecate&lt;/a&gt; – To express earnest disapproval of &lt;/li&gt;    &lt;li&gt;&lt;a href="http://dictionary.reference.com/browse/depreciate"&gt;Depreciate&lt;/a&gt; – To decline in value &lt;/li&gt;    &lt;li&gt;&lt;a href="http://dictionary.reference.com/browse/discontinue"&gt;Discontinue&lt;/a&gt; – To put to an end; stop; terminate &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Let’s start with the third – Discontinued.&amp;#160; These features have actually been removed completely (See Notification Services and * join queries).&amp;#160; This will cause an upgrade to break and should be addressed prior to migration.&lt;/p&gt;  &lt;p&gt;In the context of SQL Server, Deprecate and Depreciate essentially are the same thing – Features are Deprecated (i.e., we’re encouraged not to use them) because those features were Depreciated (Microsoft has said that they will be removed and/or replaced in future version), however they technically will still work.&amp;#160; These are features such as DTS, where SQL 2005 and SQL 2008 can still run them, however no features are being added and it will be discontinued in a future version.&lt;/p&gt;  &lt;p&gt;So when upgrading you should be aware that the deprecated code/features can still be used and won’t break the upgrade, but there’s a newer way to accomplish what you need to do and you should migrate to doing it that way because (1) it will be supported going forward and (2) it’s &lt;em&gt;usually&lt;/em&gt; a better, more efficient process.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="586" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="131"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="252"&gt;Deprecated Features&lt;/td&gt;        &lt;td valign="top" width="201"&gt;Discontinued Features&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="130"&gt;SQL Server 2005&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ms143729(SQL.90).aspx" href="http://msdn.microsoft.com/en-us/library/ms143729(SQL.90).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms143729(SQL.90).aspx&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="203"&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ms144262(SQL.90).aspx" href="http://msdn.microsoft.com/en-us/library/ms144262(SQL.90).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms144262(SQL.90).aspx&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="129"&gt;SQL Server 2008&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ms143729.aspx" href="http://msdn.microsoft.com/en-us/library/ms143729.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms143729.aspx&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="205"&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ms144262.aspx" href="http://msdn.microsoft.com/en-us/library/ms144262.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms144262.aspx&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Tools to use for Upgrading:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SQL 2005 Upgrade Advisor - &lt;a title="http://www.microsoft.com/downloads/details.aspx?familyid=1470e86b-7e05-4322-a677-95ab44f12d75&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=1470e86b-7e05-4322-a677-95ab44f12d75&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=1470e86b-7e05-4322-a677-95ab44f12d75&amp;amp;displaylang=en&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;SQL 2008 Upgrade Advisor - &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=F5A6C5E9-4CD9-4E42-A21C-7291E7F0F852&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F5A6C5E9-4CD9-4E42-A21C-7291E7F0F852&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=F5A6C5E9-4CD9-4E42-A21C-7291E7F0F852&amp;amp;displaylang=en&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;SQL Server Upgrade Assistant - &lt;a title="http://www.scalabilityexperts.com/default.asp?action=article&amp;amp;ID=43" href="http://www.scalabilityexperts.com/default.asp?action=article&amp;amp;ID=43"&gt;http://www.scalabilityexperts.com/default.asp?action=article&amp;amp;ID=43&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=FdkVqBr8nYw:0G8ekhdWod4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=FdkVqBr8nYw:0G8ekhdWod4:Pmaevz9gpwc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?i=FdkVqBr8nYw:0G8ekhdWod4:Pmaevz9gpwc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AaronLowe/~4/FdkVqBr8nYw" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AaronLowe/~3/FdkVqBr8nYw/post.aspx</link>
      <author>Aaron Lowe</author>
      <comments>http://www.aaronlowe.net/post/2009/01/14/Deprecate-Depreciate-Discontinue-Deciphered.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aaronlowe.net/post.aspx?id=718edffd-a717-4c45-b746-0486e0d48278</guid>
      <pubDate>Wed, 14 Jan 2009 12:41:39 -0600</pubDate>
      <category>SQL Server</category>
      <dc:publisher>Aaron Lowe</dc:publisher>
      <pingback:server>http://www.aaronlowe.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aaronlowe.net/post.aspx?id=718edffd-a717-4c45-b746-0486e0d48278</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.aaronlowe.net/trackback.axd?id=718edffd-a717-4c45-b746-0486e0d48278</trackback:ping>
      <wfw:comment>http://www.aaronlowe.net/post/2009/01/14/Deprecate-Depreciate-Discontinue-Deciphered.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aaronlowe.net/syndication.axd?post=718edffd-a717-4c45-b746-0486e0d48278</wfw:commentRss>
    <feedburner:origLink>http://www.aaronlowe.net/post.aspx?id=718edffd-a717-4c45-b746-0486e0d48278</feedburner:origLink></item>
    <item>
      <title>SQL Quiz: Toughest Challenge</title>
      <description>&lt;p&gt;&lt;a href="http://chrisshaw.wordpress.com/2008/12/09/sql-quiz-part-2-2/"&gt;Chris Shaw posted a second SQL Quiz&lt;/a&gt; where he asks: &amp;quot;What are the largest challenges that you have faced in your career and how did you overcome those?”&lt;/p&gt;  &lt;p&gt;#1&lt;/p&gt;  &lt;p&gt;When I was working at the University I was the primary DBA on the system for the student and Employee ID card.&amp;#160; This card was swiped for access to dorms, parking, buildings etc as well as it was hooked up to a student accounts for cafeteria, laundry, etc and the numbers were used for websites access.&amp;#160; There was a server at each of the three main campus throughout the state and the data was replicated via transactional replication.&amp;#160; Being it was a university it was a Database Application that had to have all the business logic in the database as we had to open it up to any platform or data access technology that the individual campuses, departments wanted to use.&amp;#160; However if the server was down or unavailable for any reason there were certain applications that didn’t cache data like the cafeteria services.&amp;#160; Our service window which allowed downtime was Sunday mornings from 2 am to 4 am.&amp;#160; This was run on Windows NT 4.0/SQL 7.0.&amp;#160; We eventually migrating to new machines running Windows 2003/SQL 2000 and then upgraded to SQL 2005.&amp;#160; Shortly after the upgrade to 2005 we went live with a new version which included utilization of service broker and clr and encryption.&amp;#160; So in a little over a year we did a platform migration a platform upgrade and an application upgrade without missing any of target dates or times or affecting out users.&amp;#160; Our core technical team was 4 people that was managing the entire process including communication to clients.&amp;#160; Documenting and scripting each step along with running multiple tests and involving our clients in the tests as well to set everyone’s expectations made the whole thing a success.&lt;/p&gt;  &lt;p&gt;#2&lt;/p&gt;  &lt;p&gt;I don’t think I’ll be shocking anyone by saying that in the consulting world sometimes you go onto projects in areas or technologies that you aren’t necessarily an expert in and therefore are sometimes learning on the job.&amp;#160; For example I knew DTS fairly well, however when I went on my first gig that was teaching and doing SSIS I wasn’t extremely knowledgeable about it.&amp;#160; However I crammed and learned about SSIS and the client was extremely happy with what I brought to the table.&amp;#160; So sometimes when I’m billed out as an expert, knowing how to get up to speed and being able to is just as important a skill to have.&amp;#160; And &lt;a href="http://www.twitter.com"&gt;twitter&lt;/a&gt; has made that just more easier and fun! &lt;/p&gt;  &lt;p&gt;Anyway that’s the two that really come to mind.&lt;/p&gt;  &lt;p&gt;Tagging &lt;a href="http://denglishbi.spaces.live.com/"&gt;Dan English&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=6AmOHPfbQTU:lEM3fH7MzJo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=6AmOHPfbQTU:lEM3fH7MzJo:Pmaevz9gpwc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?i=6AmOHPfbQTU:lEM3fH7MzJo:Pmaevz9gpwc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AaronLowe/~4/6AmOHPfbQTU" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AaronLowe/~3/6AmOHPfbQTU/post.aspx</link>
      <author>Aaron Lowe</author>
      <comments>http://www.aaronlowe.net/post/2008/12/11/SQL-Quiz-Toughest-Challenge.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aaronlowe.net/post.aspx?id=54489180-610e-4853-8eb6-350d307243b9</guid>
      <pubDate>Thu, 11 Dec 2008 12:58:04 -0600</pubDate>
      <category>SQL Server</category>
      <category>Social Networking</category>
      <dc:publisher>Aaron Lowe</dc:publisher>
      <pingback:server>http://www.aaronlowe.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aaronlowe.net/post.aspx?id=54489180-610e-4853-8eb6-350d307243b9</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.aaronlowe.net/trackback.axd?id=54489180-610e-4853-8eb6-350d307243b9</trackback:ping>
      <wfw:comment>http://www.aaronlowe.net/post/2008/12/11/SQL-Quiz-Toughest-Challenge.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aaronlowe.net/syndication.axd?post=54489180-610e-4853-8eb6-350d307243b9</wfw:commentRss>
    <feedburner:origLink>http://www.aaronlowe.net/post.aspx?id=54489180-610e-4853-8eb6-350d307243b9</feedburner:origLink></item>
    <item>
      <title>SQL Quiz</title>
      <description>&lt;p&gt;Evidently while I was on vacation I missed &lt;a href="http://chrisshaw.wordpress.com/2008/11/05/new-sql-quiz/"&gt;Chris Shaw&lt;/a&gt; ask for us to share our mistakes, however now that I see it, thought I’d jump in.&lt;/p&gt;  &lt;p&gt;My first full time job I was employed as a System Administrator.&amp;#160; I soon realized the purpose of this generic term was because I was the only technical guy on site supporting a company’s sales office of around 20 users and as a result I had to maintain NT 4, SQL 6.5, Exchange 4.0, Win ‘95, Office ‘97, Goldmine, Veritas Backup, etc. This office also housed the primary dns information and our website and exchange.&amp;#160; The primary office which was around 60 people at the time was in another country with a time difference of 6 hours.&lt;/p&gt;  &lt;p&gt;Anyway I had weekly calls with the senior sys admin who was telecommuting from his house (1 timezone away) and one of the items that had been on the to do list for awhile was upgrade the Exchange server from 4.0 to 5.5.&amp;#160; Not liking things on my to do list for very long I kept asking about it and was told it was no big deal and when we get some time we will do it.&amp;#160; Well being about a month out of college and wanting to make a good impression I realized I had some time one late afternoon and figured as it was no big deal, I’ll just pop in the CD and go for it.&amp;#160; I mean it’s an upgrade right, not like a new install where I’ll have to configure a bunch of stuff.&lt;/p&gt;  &lt;p&gt;Well suffice to say the upgrade actually crashed partway through and NT 4.0’s Dr. Watson faithfully kicked off.&amp;#160; Not really understanding anything about anything I rebooted and tried it again at which point I received the same result.&amp;#160; So I remembered being told we has backup tapes and I should be able to restore if there’s a problem, so I popped in the backup tape and starting restoring.&amp;#160; Once the restore was done I tried to access my email and still no luck.&amp;#160; Time to call someone, but as it was no big deal I wasn’t even worried at this time.&lt;/p&gt;  &lt;p&gt;Well calling the senior sys admin they gave me a little better perspective of how big the deal was.&amp;#160; And they were even gracious enough to inform me that I really shouldn’t have done the upgrade by myself and that the backups I had just restored weren’t of the Exchange server, they were of the file server so not only did was not have Email working for the entire company, we had also just lost the sale’s work for the entire day.&amp;#160; &lt;/p&gt;  &lt;p&gt;It was at this point I immediately starting doing multiple things at once.&amp;#160; I started sweating.&amp;#160; I started feeling sick to my stomach.&amp;#160; I started worrying about my job, and subsequently my bills (I had just gotten my first mortgage earlier that month).&amp;#160; I started trying to figure out what I could do to solve the problem. &lt;/p&gt;  &lt;p&gt;The next 26 hours went by like a blur, but I can say that I ended up doing those four things a lot.&amp;#160; I got on the phone with MS Support (paid-for incident).&amp;#160; Finally we got Exchange Server running after using a low-level utility which investigated every record in the Exchange data store and if that record wasn’t perfect it was deleted.&amp;#160; We went from about 3GB data store to about 650 MB data store.&amp;#160; I quickly wrote up a post-mortem (although I didn’t know it was called a post-mortem at the time) and sent it out.&amp;#160; I actually shared an office with the COO and co-owner of the company at the time due to space restrictions and I remember hitting the send button on my email and booking it out of the room on an ”errand”.&amp;#160; However after a discussion of the post-mortem with management they ended up using this as a learning opportunity for me and I ended up continuing to work there for another 2 years or so.&lt;/p&gt;  &lt;p&gt;While I have made mistakes since then, none have every been to this level and therefore I usually keep a nice cool head on my shoulders in the face of problems.&amp;#160; :)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=Fu75mak23WQ:ApcdGLTv_0w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AaronLowe?a=Fu75mak23WQ:ApcdGLTv_0w:Pmaevz9gpwc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AaronLowe?i=Fu75mak23WQ:ApcdGLTv_0w:Pmaevz9gpwc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AaronLowe/~4/Fu75mak23WQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/AaronLowe/~3/Fu75mak23WQ/post.aspx</link>
      <author>Aaron Lowe</author>
      <comments>http://www.aaronlowe.net/post/2008/12/11/SQL-Quiz.aspx#comment</comments>
      <guid isPermaLink="false">http://www.aaronlowe.net/post.aspx?id=aca9153e-5d71-4baa-b757-2031f291006d</guid>
      <pubDate>Thu, 11 Dec 2008 12:19:20 -0600</pubDate>
      <category>Social Networking</category>
      <category>SQL Server</category>
      <dc:publisher>Aaron Lowe</dc:publisher>
      <pingback:server>http://www.aaronlowe.net/pingback.axd</pingback:server>
      <pingback:target>http://www.aaronlowe.net/post.aspx?id=aca9153e-5d71-4baa-b757-2031f291006d</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.aaronlowe.net/trackback.axd?id=aca9153e-5d71-4baa-b757-2031f291006d</trackback:ping>
      <wfw:comment>http://www.aaronlowe.net/post/2008/12/11/SQL-Quiz.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aaronlowe.net/syndication.axd?post=aca9153e-5d71-4baa-b757-2031f291006d</wfw:commentRss>
    <feedburner:origLink>http://www.aaronlowe.net/post.aspx?id=aca9153e-5d71-4baa-b757-2031f291006d</feedburner:origLink></item>
  </channel>
</rss>
