<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">::Nathan's Blog</title><subtitle type="html">The view from a Fast Moving Train</subtitle><id>http://blogs.geekdojo.net/nathan/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.geekdojo.net/nathan/atom.aspx" /><generator uri="http://communityserver.org" version="2.0.60217.2664">Community Server</generator><updated>2006-01-12T09:43:00Z</updated><entry><title>Disorderly Views</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2008/08/05/2022290945.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2008/08/05/2022290945.aspx</id><published>2008-08-05T00:51:44Z</published><updated>2008-08-05T00:51:44Z</updated><content type="html">&lt;p&gt;In SQL Server 2005, if you create a view utilizing the TOP (100) PERCENT and ORDER BY clauses, you will not get back your results in the order specified.&lt;/p&gt; &lt;p&gt;Example:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font color="#000080"&gt;USE&lt;/font&gt; AdventureWorks&lt;br&gt;GO&lt;br&gt;&lt;font color="#000080"&gt;CREATE VIEW&lt;/font&gt; CustomersOrderedbyTerritory&lt;br&gt;&lt;font color="#000080"&gt;AS&lt;br&gt;SELECT TOP&lt;/font&gt;(100) PERCENT * &lt;font color="#000080"&gt;FROM&lt;/font&gt; Sales.Customer&lt;br&gt;&lt;font color="#000080"&gt;ORDER BY&lt;/font&gt; TerritoryID &lt;br&gt;GO&lt;br&gt;&lt;font color="#000080"&gt;SELECT&lt;/font&gt; * &lt;font color="#000080"&gt;FROM&lt;/font&gt; customersOrderedbyTerritory&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;You will notice that SELECTing from this view returns&amp;nbsp; a result set 'ignorant' of the ORDER BY directive. In essence, the optimizer ignores the TOP and ORDER BY clauses.&amp;nbsp; To achieve the desired result, there is a &lt;a href="http://support.microsoft.com/default.aspx/kb/926292" target="_blank"&gt;hot fix available from MSFT&lt;/a&gt; which introduces &lt;strong&gt;trace flag 168&lt;/strong&gt; and also requires you set the database compatibility level to 80 (SQL Server 2000).&lt;/p&gt; &lt;p&gt;Apparently, the problem also extends to Common Table Expressions (CTE) which use the same constructs such as :&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font color="#000080"&gt;WITH&lt;/font&gt; territorialcustomers &lt;font color="#000080"&gt;AS&lt;/font&gt;&lt;br&gt;(&lt;br&gt;&lt;font color="#000080"&gt;SELECT TOP&lt;/font&gt;(100) PERCENT * &lt;font color="#000080"&gt;FROM&lt;/font&gt; Sales.Customer&lt;br&gt;&lt;font color="#000080"&gt;ORDER BY&lt;/font&gt; TerritoryID &lt;br&gt;)&lt;br&gt;&lt;font color="#000080"&gt;SELECT&lt;/font&gt; * &lt;font color="#000080"&gt;FROM&lt;/font&gt; territorialcustomers&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;If you don't want to set your compatibility level to 80, you can use &lt;strong&gt;TOP (99.999999999999)&lt;/strong&gt; instead. This somehow fools the optimizer to sort the data the way you want it to. Of course, it is only useful if your table contains less than 10 million records since the 0.000000000001% difference may start to show.&lt;/p&gt; &lt;p&gt;Well, if you insist on using the view, you can avoid the hot fix by using the ORDER BY clause in a table-valued function to retrieve your ordered data .&amp;nbsp; You can then wrap your view around this UDF. &lt;/p&gt; &lt;p&gt;I have not checked if this behavior has been carried forward to SQL Server 2008.&lt;/p&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=2022290945" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>Lessons From The Trenches</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2008/08/04/2022290944.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2008/08/04/2022290944.aspx</id><published>2008-08-04T22:08:01Z</published><updated>2008-08-04T22:08:01Z</updated><content type="html">&lt;p&gt;A substantial part of my development career was spent on the assembly line churning out code based on someone else specifications. There was always somebody else to handle the financial, administrative, marketing and sales aspects of&amp;nbsp; the whole manufacturing process - what I used to call the 'social' face of software. Now that I am running my own small software outfit and having gone through a few projects, the lessons seem to be coming my way fast and hard on a daily basis. Most of them are the 'social' kind and I will proceed to randomly throw them at you, mainly because I don't want to forget them. &lt;/p&gt; &lt;ol&gt; &lt;li&gt;Document all proposed requirements (features) to the most atomic level of detail possible. Ambiguous or general statements can fool you into optimism as far as the project timeline and budget is concerned. A specification statement like "&lt;em&gt;The new system should allow employees to view their own data currently stored in the HR management system oracle database&lt;/em&gt;" cannot be the basis of a design. Break it down with questions like this:  &lt;ul&gt; &lt;li&gt;&lt;em&gt;&lt;strong&gt;Allow&lt;/strong&gt;&lt;/em&gt; - May suggest security concerns. Will this be integrated security (implicit) or forms-based (explicit)?. Is there some form of identity management in place? Will we have to log (keep track) access to the system somewhere?  &lt;li&gt;&lt;em&gt;&lt;strong&gt;Employees&lt;/strong&gt;&lt;/em&gt; - How many? Where are they located? Will each computer need some form of installation or setup procedure before using the system?  &lt;li&gt;&lt;em&gt;&lt;strong&gt;View&lt;/strong&gt;&lt;/em&gt; - Where is the viewpoint? i.e. can the employee view the data while outside the LAN. What will they use to view the data? i.e a browser, a Windows forms application through a VPN? Do we need to encrypt the data? What obstacles lie between the user and the data? Firewalls,  &lt;li&gt;&lt;em&gt;&lt;strong&gt;Own&lt;/strong&gt;&lt;/em&gt; - Are there people who can view other peoples' data? Who manages all these permissions?  &lt;li&gt;&lt;em&gt;&lt;strong&gt;Data&lt;/strong&gt;&lt;/em&gt; - Which data exactly? i.e. Salaries, leave (vacation), loans, employment history (vertical and horizontal movement within the firm). How should each be displayed?  &lt;li&gt;&lt;strong&gt;Oracle&lt;/strong&gt; - Which version? Oracle client software installation? Who is responsible for this other database? Will they help with scripts to get the data out? Will we be allowed access to some of the data during development? &lt;em&gt;Silently:(Do we have skills to deal with PL/SQL and ADO.NET&lt;/em&gt;?). Any documentation available?  &lt;li&gt;If most of the above questions can be answered satisfactorily by the client, you may be able to do a better estimate than just a '1 man-week' guess. In fact, you might realize that this could very easily end up at slightly more than '1 man-month'. Remember that I am talking about one requirements specification statement.&amp;nbsp;&amp;nbsp; &lt;li&gt;You might, of course, want to wear the 'architects' hat and start thinking of &lt;em&gt;performance, availability, scalability, extensibility and interoperability&lt;/em&gt; at the statement level. These thoughts will not reduce the value of your requirements and may uncover other concerns and wishes not previously stated.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Communicate anything involving an agreed or suggested flux in resources and system features in writing (e-mail) as much as possible. Copy (cc) the communication to all the people relevant to that part of the project. After meetings, e-mail the client highlighting the main points agreed or disagreed during that meeting and ask for confirmation. You may look dumb and slow but this will cover your bases and avoid any ambiguity or disputes later.  &lt;li&gt;Perform user acceptance testing as early as sanely possible. Unit and functional tests can be greatly complemented by the almost natural ability of a user to always crash a system. The fact that the software is incomplete only serves to gauge your feature prioritization skills. This could be a better indicator of where the project status instead of just checking off a feature list in a garage or on an Ms Project gantt chart. In any case, a client nod is worth more than any test case scenarios you can cook up.&amp;nbsp; &lt;li&gt;Demarcate or at least try to understand the boundary between the &lt;em&gt;user &lt;/em&gt;and the&lt;em&gt; client&lt;/em&gt;. These two entities are important to the closure of the project. The client will pay for the software. Users will use your software as often as necessary. Users will certify your system. The client may not pay if the user is not happy. Your will be supporting users later - despite what the contract says. When the client is the user, you may have an easier job navigating through the acceptance and invoicing phases. If they are not , get a good project liaison to grease the path between them.  &lt;li&gt;Listen to all levels of the user spectrum. Every data entry and retrieval scenario should have a 'persona' and a real blood-and-bones user early in the project. Different people have different views of design. You may be able to merge these different views with your own or even learn something new. Not listening creates room for assumptions. Assumptions can spawn undefined elasticity in resources and features. Listening later only serves to widen the delicate gap between project initiation and final invoicing.  &lt;li&gt;Know the accounting practices and procedures of the client. What they may consider fast payment processing may be too slow for you. Your bills and obligations may not dance to the same tune as your clients' workflow and traditions. This will also allow you to plan for cash flow.&amp;nbsp;&amp;nbsp; &lt;li&gt;If you can, start creating user documentation (help files) early. Consider this as a validation of the requirements and testing activities. This also brings the end game nearer.  &lt;li&gt;If there is a training clause in the contract, make sure the scope is clear. You may find yourself teaching PC skills, database administration, active directory services or even VB.NET for free or at a lower price than you would have if it was stated clearly from the beginning.  &lt;li&gt;If you can help it, get somebody who knows their way around the establishment and has a goodwill for the project as a liaison. Canceled or missed appointments with various people, internal events or staff deployment changes in the client firm can affect your ship date. You may also need help bullying the accounts people - they usually respond better to internal pressure and nagging. A good rapport with the internal IT team can be good for repeat or referential business. It might just help to reduce your medical bills as you struggle to deploy your new software.  &lt;li&gt;It may be that you got the job through a competitive process (a.k.a tender). Make sure you get to know why you won/lost the bid and what your competition had to offer in their technical and financial proposals. There will always be a next time and it is very likely that you will meet your competitors again. Such knowledge can only serve to improve your chances.&amp;nbsp; &lt;li&gt;In case you were wondering, I have little to say about software maintenance contracts. You will not need to do much if the agreement (SLA) is clear and your software approximates the elusive zero-bug state. On the other hand, it is very easy to spend all your money 'maintaining' the software as you respond to every user SOS and hunt down all kinds of bugs.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Whether my experiences are out of place is subject to the test of time and the pressure of future projects. In the meantime, they will serve as a reminder that the world is still interesting outside the confines of Visual Studio and the SQL Server query editor.&lt;/p&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=2022290944" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>Free Download of Refactor! For ASP.NET 2.0</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2007/02/03/109525.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2007/02/03/109525.aspx</id><published>2007-02-03T18:59:00Z</published><updated>2007-02-03T18:59:00Z</updated><content type="html">&lt;P&gt;Mark Miller (DevExpress)&amp;nbsp;is offering a &lt;A href="http://www.devexpress.com/refactorasp" target=_blank&gt;free for all download of Refactor! for Visual Studio 2005&lt;/A&gt;. It includes &lt;STRONG&gt;25 refactorings&lt;/STRONG&gt;, nine of which are dedicated to ASP.NET development (the other 16 work in VB and C# code-behind files). There is also a&amp;nbsp;full-screen&amp;nbsp;&lt;A href="http://www.devexpress.com/Products/NET/IDETools/RefactorASP/Presentation/Refactor_for_ASP_NET_Full/" target=_blank&gt;training video&lt;/A&gt; available for your viewing pleasure.Having used&amp;nbsp;the Pro&amp;nbsp;version of the tool for some time now, I am happy to see that Mark has decided to make&amp;nbsp;some of the features free for&amp;nbsp;public consumption. The features that are available while working with ASP.NET 2.0 are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;Add Validator 
&lt;LI&gt;Extract ContentPlaceHolder 
&lt;LI&gt;Extract ContentPlaceHolder (and create master page) 
&lt;LI&gt;Extract Style (Class) : &lt;EM&gt;Not available inside content pages&lt;/EM&gt; 
&lt;LI&gt;Extract Style (id) : &lt;EM&gt;Not available inside content pages&lt;/EM&gt; 
&lt;LI&gt;Move to Code-behind 
&lt;LI&gt;Move Style Attributes to CSS 
&lt;LI&gt;Rename Style 
&lt;LI&gt;Surround with Update Panel: &lt;EM&gt;Does not modify the Web.Config file&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=109525" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>T-SQL Wordiness</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/11/03/26434.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/11/03/26434.aspx</id><published>2006-11-03T01:02:44Z</published><updated>2006-11-03T01:02:44Z</updated><content type="html">&lt;p&gt;T-SQL may not be a 'true' programming language but it sure has lots of language features that make&amp;nbsp;manipulating data possible. I spend quite a reasonable amount of time writing T-SQL scripts; either&amp;nbsp;in production or learning or sometimes while teaching. While doing this I have often found myself cursing at the amount of typing required to accomplish otherwise simple constructs. Here is a sampling what I am rambling about:&lt;/p&gt; &lt;p&gt;1. Separation of variable declaration and initialization. Put simply, I would love to be able to do the following, at least for scalar &amp;nbsp;types&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font color="#0080ff"&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;DECLARE&lt;/font&gt; @var int=0&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;instead of having to do it over two lines, thus&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;DECLARE @var int&lt;br&gt;SET @var=0&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;2.&amp;nbsp;Creating database objects using&amp;nbsp;IF ..DROP..CREATE. It is just involves too many keystrokes. Oracle PL/SQL has the CREATE OR REPLACE syntax. Why wouldn't the SQL Server team indulge us on this one? For those who are wondering what this is all about, if you want to&amp;nbsp;create a table,&amp;nbsp;&amp;nbsp;you must check if it exists before issuing the CREATE statement. You could go about it like this&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;IF OBJECT_ID('myTable') IS NOT NULL&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DROP TABLE myTable&lt;br&gt;CREATE TABLE myTable(col1 int)&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Please, just&amp;nbsp;give us this instead&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;CREATE&lt;/font&gt; OR &lt;font color="#0000ff"&gt;REPLACE&lt;/font&gt; TABLE myTable(col1 int)&lt;/strong&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;If I am not mistaken, somebody has already asked for this on the &lt;a href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=127219" target="_blank"&gt;Microsoft Connect&lt;/a&gt; site. You&amp;nbsp;may want to&amp;nbsp;vote for that feature.&lt;/p&gt; &lt;p&gt;3. Is there any hope for a more compact loop construct instead of this?&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;DECLARE @var int&lt;br&gt;SET @var=0&lt;br&gt;WHILE @var&amp;lt;1000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @var=@var+1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --Some code here&lt;br&gt;&amp;nbsp;&amp;nbsp; END&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;You notice that the six uncommented lines are required to do a simple loop. This can quickly increase if you have more than one loop&amp;nbsp;(a.k.a an&amp;nbsp;'inner'&amp;nbsp;loop). Since I don't expect to see curly brackets in T-SQL anytime soon, what about a &lt;strong&gt;FOR...NEXT&lt;/strong&gt; simple VB-like loop?&lt;/p&gt; &lt;p&gt;I may come off as a truly lazy DBA, but after&amp;nbsp;exposure to other 'programming' languages, I feel that once in a while my productivity is impaired with this chatful state of affairs. I am not sure if there is anything in the ANSI-SQL standard that prohibits these wishes from coming true, but I am definitely sure that the SQL Server programmability team should think about it.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Note To Self&lt;/strong&gt;:&amp;nbsp;If wishes were horses, beggars would surely ride.&lt;/p&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=26434" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>July Refresh of Books Online</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/07/22/11578.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/07/22/11578.aspx</id><published>2006-07-22T16:49:00Z</published><updated>2006-07-22T16:49:00Z</updated><content type="html">The July Refresh of the SQL Server Books Online is now available. This&amp;nbsp;edition of the documentation is supposed to cater for all current editions of SQL Server including Express. &lt;A href="http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx"&gt;Download&lt;/A&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=11578" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>Office 2007 Beta 2 </title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/05/24/10946.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/05/24/10946.aspx</id><published>2006-05-24T18:20:00Z</published><updated>2006-05-24T18:20:00Z</updated><content type="html">The public release of Office 2007 Beta 2 is now available. &lt;A href="http://www.microsoft.com/office/preview/beta/download/en/default.mspx"&gt;Download&lt;/A&gt;&amp;nbsp;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=10946" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>A login has got to do what a login can do</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/04/26/10724.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/04/26/10724.aspx</id><published>2006-04-26T17:36:00Z</published><updated>2006-04-26T17:36:00Z</updated><content type="html">&lt;P&gt;As an SQL Server admin, there are times when the combination of many users, groups, roles, logins and the various permissions&amp;nbsp;that can be given to each to do stuff&amp;nbsp;on various&amp;nbsp;databases and objects within&amp;nbsp;your server may just be too confusing. Just like the previous sentence.&lt;/P&gt;
&lt;P&gt;One way of coming out of this mess unscarthed is to rigorously document every permission&amp;nbsp;granted to every login/group and keep track of it all. I know many people who don't. I don't either.&amp;nbsp;Since you basically can't do&amp;nbsp;much with SQL Server unless 'explicity' granted or 'implicitly' allowed by virtue of your membership in the public or other groups/roles, I am normally much more worried about what I have GRANTED my logins rather than what I have explicitly DENIED them. In other words, most people would love to know who CAN do stuff rather than who CANNOT do stuff. So what else&amp;nbsp;can you do about it? I wrote a script (stored procedure actually)&amp;nbsp;to show me all the stuff that a given user/login can do&amp;nbsp;within a&amp;nbsp;particular database and on its hosting server. Here we go.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;CREATE&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;PROC&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;[loginperms] 
&lt;P&gt;
&lt;P&gt;@login &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;varchar&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT size=2&gt;128&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;) 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;AS&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-RIGHT: 0px"&gt;SET &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;NOCOUNT&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ON &lt;/P&gt;
&lt;P&gt;
&lt;P&gt;IF&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;SELECT&lt;/FONT&gt;&lt;FONT size=2&gt; is_disabled &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;from&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.server_principals&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;@login&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)=&lt;/FONT&gt;&lt;FONT size=2&gt;1 
&lt;P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;SELECT&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'The login &amp;lt;'&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; @login &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;'&amp;gt; is disabled' 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;ELSE&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;SELECT&lt;/FONT&gt;&lt;FONT size=2&gt; [Object Class]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;class_desc&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;, &lt;/FONT&gt;&lt;FONT size=2&gt;[Object]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CASE&lt;/FONT&gt;&lt;FONT size=2&gt; class &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; 100 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;@@SERVERNAME&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; 105 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&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;SELECT&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;FROM&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.endpoints&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;FONT size=2&gt; endpoint_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;major_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ELSE&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;object_name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT size=2&gt;major_id&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;END&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;[column]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;''&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt;[Permission]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;permission_name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;, 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;[Permission Type]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CASE&lt;/FONT&gt;&lt;FONT size=2&gt; spr&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;type&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'U'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'Direct'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'R'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'Inherited'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;END&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;FROM&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.server_permissions&lt;/FONT&gt;&lt;FONT size=2&gt; spm &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;JOIN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.server_principals&lt;/FONT&gt;&lt;FONT size=2&gt; spr 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ON&lt;/FONT&gt;&lt;FONT size=2&gt; spm&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;grantee_principal_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;spr&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;principal_id 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;FONT size=2&gt; spr&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;type&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;NOT&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;IN(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'C'&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;AND&lt;/FONT&gt;&lt;FONT size=2&gt; is_disabled&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;0 &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;AND&lt;/FONT&gt;&lt;FONT size=2&gt; spr&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;@login 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;UNION 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;SELECT&lt;/FONT&gt;&lt;FONT size=2&gt; [Object Class]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;class_desc&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt;Object&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CASE&lt;/FONT&gt;&lt;FONT size=2&gt; class &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; 100 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;@@SERVERNAME&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; 105 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&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;SELECT&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;FROM&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.endpoints&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;FONT size=2&gt; endpoint_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;major_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ELSE&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;object_name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT size=2&gt;major_id&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;END&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 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;permission_name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;, 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;[Permission Type]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CASE&lt;/FONT&gt;&lt;FONT size=2&gt; spr&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;type&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'U'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'Direct'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'R'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'Inherited'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;END&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;FROM&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.server_permissions&lt;/FONT&gt;&lt;FONT size=2&gt; spm &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;JOIN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.server_principals&lt;/FONT&gt;&lt;FONT size=2&gt; spr 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ON&lt;/FONT&gt;&lt;FONT size=2&gt; spm&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;grantee_principal_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;spr&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;principal_id 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;FONT size=2&gt; spr&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;type&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;NOT&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;IN(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'C'&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;AND&lt;/FONT&gt;&lt;FONT size=2&gt; is_disabled&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;0 &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;AND&lt;/FONT&gt;&lt;FONT size=2&gt; spr&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'public'&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;UNION 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;SELECT&lt;/FONT&gt;&lt;FONT size=2&gt; [Object Class]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CASE&lt;/FONT&gt;&lt;FONT size=2&gt; class &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; 1 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&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;SELECT&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;REPLACE&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT size=2&gt;type_desc&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'_'&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;' '&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;FROM&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.all_objects&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;object_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;major_id&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;ELSE&lt;/FONT&gt;&lt;FONT size=2&gt; class_desc &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;END&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;, 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;Object &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CASE&lt;/FONT&gt;&lt;FONT size=2&gt; class &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; 0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;DB_NAME&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;ELSE&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;object_name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT size=2&gt;major_id&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;END&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;, &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;[Column]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CASE&lt;/FONT&gt;&lt;FONT size=2&gt; minor_id &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; 0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;then&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;''&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ELSE&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;COL_NAME&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT size=2&gt;major_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt;minor_id&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;END&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt;permission_name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;, 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;[Permission Type]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CASE&lt;/FONT&gt;&lt;FONT size=2&gt; dpri&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;type&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'U'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'Direct'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'R'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'Inherited'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;END&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;FROM&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.database_permissions&lt;/FONT&gt;&lt;FONT size=2&gt; dperm &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;JOIN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.database_principals&lt;/FONT&gt;&lt;FONT size=2&gt; dpri 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ON&lt;/FONT&gt;&lt;FONT size=2&gt; dperm&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;grantee_principal_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;dpri&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;principal_id 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;FONT size=2&gt; dpri&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;@login &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;AND&lt;/FONT&gt;&lt;FONT size=2&gt; state_desc &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;LIKE&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'G%'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;AND&lt;/FONT&gt;&lt;FONT size=2&gt; major_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;0 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;UNION 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;SELECT&lt;/FONT&gt;&lt;FONT size=2&gt; [Object Class]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;class_desc&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;, &lt;/FONT&gt;&lt;FONT size=2&gt;Object&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CASE&lt;/FONT&gt;&lt;FONT size=2&gt; class &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; 0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;DB_NAME&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;ELSE&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;object_name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT size=2&gt;major_id&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;END&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;, 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;[Column]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CASE&lt;/FONT&gt;&lt;FONT size=2&gt; minor_id &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; 0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;then&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;''&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ELSE&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;COL_NAME&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT size=2&gt;major_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt;minor_id&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;END&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;, &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;permission_name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt;[Permission Type]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CASE&lt;/FONT&gt;&lt;FONT size=2&gt; dpri&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;type&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'U'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'Direct'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'R'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;THEN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'Inherited'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;END&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;FROM&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.database_permissions&lt;/FONT&gt;&lt;FONT size=2&gt; dperm &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;JOIN&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;sys.database_principals&lt;/FONT&gt;&lt;FONT size=2&gt; dpri 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ON&lt;/FONT&gt;&lt;FONT size=2&gt; dperm&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;grantee_principal_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;dpri&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT size=2&gt;principal_id 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;FONT size=2&gt; dpri&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'public'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;AND&lt;/FONT&gt;&lt;FONT size=2&gt; state_desc &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;LIKE&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'G%'&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;AND&lt;/FONT&gt;&lt;FONT size=2&gt; major_id&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;0 
&lt;P&gt;
&lt;P&gt;GO&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;You may want to use the&amp;nbsp;procedure like this:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;EXECUTE&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;nbsp;&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;[loginperms] &lt;FONT color=#ff0000&gt;'DOMAIN\user'&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;or&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;EXECUTE&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;nbsp;&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;[loginperms] &lt;FONT color=#ff0000&gt;'sql_login'&lt;/FONT&gt; 
&lt;P&gt;
&lt;P&gt;&lt;/FONT&gt;
&lt;P&gt;
&lt;P&gt;I know, it is even easier&amp;nbsp;get this information using the brand new SQL Server Management Objects (SMO).&amp;nbsp;Maybe I will blog about that on another day. In the meantime, let's just be happy with T-SQL.&lt;/P&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=10724" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>SQL Server 2005 Books Online April Refresh</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/04/24/10674.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/04/24/10674.aspx</id><published>2006-04-24T17:26:00Z</published><updated>2006-04-24T17:26:00Z</updated><content type="html">&lt;P&gt;The delayed SQL Server 2005 Books Online (BOL) April 2006 refresh should now be up and ready for downloading. &lt;/P&gt;
&lt;P&gt;Get it &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=be6a2c5d-00df-4220-b133-29c1e0b6585f&amp;amp;DisplayLang=en"&gt;here&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=10674" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>Mobile and Embedded Devcon (MEDC) 2006 Europe</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/04/13/10553.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/04/13/10553.aspx</id><published>2006-04-13T21:37:00Z</published><updated>2006-04-13T21:37:00Z</updated><content type="html">&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://www.microsoft.com/europe/medc/"&gt;&lt;IMG src="http://www.microsoft.com/europe/medc/images/banners/468x60_V1.gif" border=0&gt;&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Details&lt;/STRONG&gt;:&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Event&lt;/STRONG&gt;: Mobile and Embedded Devcon (MEDC) 2006 Europe&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Dates&lt;/STRONG&gt;: 6th-8th June 2006&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Place&lt;/STRONG&gt;: Nice, France&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Sessions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Using Microsoft Windows Embedded Products to Bring to Market a Broad Range of Devices &lt;/LI&gt;
&lt;LI&gt;Windows CE Overview &lt;/LI&gt;
&lt;LI&gt;What's New in the Next Version of Windows CE Tools&lt;/LI&gt;
&lt;LI&gt;Writing Windows CE Services &lt;/LI&gt;
&lt;LI&gt;Stabilizing the Platform &lt;/LI&gt;
&lt;LI&gt;Inside the Windows CE Kernel &lt;/LI&gt;
&lt;LI&gt;Windows CE Memory Tools for Native Code &lt;/LI&gt;
&lt;LI&gt;Windows CE Performance Tools &amp;amp; Techniques&lt;/LI&gt;
&lt;LI&gt;How to write a Windows CE Boot Loader (combine with Secure Bootloader) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Discounts are available&amp;nbsp;if you&amp;nbsp;register before the end of next week. Get more details at&amp;nbsp; &lt;A href="http://www.microsoft.com/europe/medc/"&gt;http://www.microsoft.com/europe/medc/&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=10553" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>Dubai DevCon</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/04/13/10551.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/04/13/10551.aspx</id><published>2006-04-13T18:09:00Z</published><updated>2006-04-13T18:09:00Z</updated><content type="html">What are you doing on the Labour Day weekend?&amp;nbsp;&amp;nbsp;You can attend the First Developers Conference in Dubai and maybe&amp;nbsp;do some shopping while you are there.&amp;nbsp;There will be stuff on ASP.NET, Office 2007 and&amp;nbsp;Vista.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A href="http://www.microsoft.com/middleeast/UAE/developers/geeks/"&gt;Microsoft Middle East has put up the details on their website&lt;/A&gt;. Go and register.&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=10551" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>PostXing Beta</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/04/12/10536.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/04/12/10536.aspx</id><published>2006-04-12T18:33:10Z</published><updated>2006-04-12T18:33:10Z</updated><content type="html">
&lt;p&gt;I just downloaded &lt;a href="http://www.chrisfrazier.net/blog"&gt;Chris 
Frazier's&lt;/a&gt; PostXing &lt;a href="http://www.projectdistributor.net/Projects/Project.aspx?projectId=12"&gt;Beta 
(2.0.6068.2)&lt;/a&gt; and I am using it post this offline. If you can read it, then 
it works and it rocks!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I was totally unable to use IMHO Instant blogger despite Ryan Rinaldi's 
suggestions. This might just change the way I've been 
blogging.&lt;/p&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=10536" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>Talking Point</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/04/10/10518.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/04/10/10518.aspx</id><published>2006-04-10T22:18:00Z</published><updated>2006-04-10T22:18:00Z</updated><content type="html">&lt;P&gt;Over the weekend&amp;nbsp;I stumbled across&amp;nbsp;(and survived)&amp;nbsp;the&amp;nbsp;&lt;A href="http://www.sqldownunder.com"&gt;SQLDownUnder Podcast&lt;/A&gt;&amp;nbsp; by Greg Low [MVP]. The guy really knows how to make a professional conversation about a difficult topic sound like a chit-chat at the coffee shop. He has already done 13 shows&amp;nbsp;interviewing&amp;nbsp;fellow SQL&amp;nbsp;MVPs {Itzik Ben Gan, Kelan Delaney, Adam Machanic, Tom Moreau, Bill Grazziano etc.}&amp;nbsp;and they all came out superior to anything I have heard on SQL Server for a long time. &lt;/P&gt;
&lt;P&gt;When&amp;nbsp;are Steve Kass and Kimberly Tripp stepping up to Greg?&lt;/P&gt;
&lt;P&gt;By the way, there is another &lt;A href="http://www.sswug.org/sswugradio"&gt;SQL Server broadcast at the SSWUG&lt;/A&gt; (SQL Server Worldwide user Group) site. This one is also being done by another SQL Server MVP, Chuck Boyce. Check it out.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Let's keep talking.&lt;/P&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=10518" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>African MVP Links</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/04/10/10517.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/04/10/10517.aspx</id><published>2006-04-10T20:17:00Z</published><updated>2006-04-10T20:17:00Z</updated><content type="html">&lt;P&gt;Here is a list of the 15 MVPs from Africa and the 'spots' where they hang out:&lt;/P&gt;
&lt;P&gt;The Active Directory Squad&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Evan Erwee - Directory Services 
&lt;LI&gt;Niyi Omotoyinbo - Directory Services &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The C# crowd&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Ernst Kuschke - C# -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;A href="http://dotnet.org.za/ernst/"&gt;http://dotnet.org.za/ernst/&lt;/A&gt; ] 
&lt;LI&gt;Peter MacMahon - C# 
&lt;LI&gt;Hilton Giesenow - C#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;A href="http://dotnet.org.za/hiltong/"&gt;http://dotnet.org.za/hiltong/&lt;/A&gt; ] 
&lt;LI&gt;Armand du Plessis - C#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;A href="http://dotnet.org.za/armand/"&gt;http://dotnet.org.za/armand/&lt;/A&gt; ] 
&lt;LI&gt;Francois Bonin - C#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;A href="http://www.francoisbonin.com"&gt;http://www.francoisbonin.com&lt;/A&gt;]&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The SharePoint Man&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Arno Nel - Sharepoint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;A href="http://arnonel.com/blogs/arnonel/default.aspx" target=_new&gt;&lt;FONT color=#0000cc&gt;http://arnonel.com/blogs/arnonel/default.aspx&lt;/FONT&gt;&lt;/A&gt;]&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Everybody else!!&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Pieter Germishuys - DirectX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ &lt;A href="http://www.sadeveloper.net/"&gt;http://www.sadeveloper.net&lt;/A&gt;&amp;nbsp;] 
&lt;LI&gt;Chris Quirke -Shell/User&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;A href="http://cquirke.blogspot.com/"&gt;http://cquirke.blogspot.com&lt;/A&gt;&amp;nbsp;] 
&lt;LI&gt;Willy-Peter Schaub - Team System&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;A href="http://dotnet.org.za/willy/default.aspx"&gt;http://dotnet.org.za/willy/default.aspx&lt;/A&gt;] 
&lt;LI&gt;Edgar Okioga - Visual Basic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;A href="http://www.africadotnet.org"&gt;http://www.africadotnet.org&lt;/A&gt; ] 
&lt;LI&gt;Conrad Akunga&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;A href="http://www.africadotnet.org"&gt;http://www.africadotnet.org&lt;/A&gt; ] 
&lt;LI&gt;Almero Steyn 
&lt;LI&gt;Onawale Clement Oladapo &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Check them out if and when you have time.&lt;/P&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=10517" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>LUG Award: Least Useless Guy</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/04/10/10508.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/04/10/10508.aspx</id><published>2006-04-10T16:58:00Z</published><updated>2006-04-10T16:58:00Z</updated><content type="html">&lt;P&gt;Guess what? Somebody decided that I should join the ranks of guys who spend all&amp;nbsp;their&amp;nbsp;disposable time online helping&amp;nbsp;chaps/chapesses who&amp;nbsp;spend their working time online looking for answers to SQL Server problems. Maybe somebody at Microsoft just doesn't like me. But I am happy to inform the rest of the world that I&amp;nbsp;just became an SQL Server MVP (on April fool's day nevertheless!). When I received the e-mail from the MVP lead, I almost thought it&amp;nbsp;was a prank until I saw the award package land on my desk from the local DHL office.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I&amp;nbsp;will stop asking where Itzik Ben Gan or Kelan Delaney are blogging coz I can now harrass them when they pop up in the MVP newsgroups. Without too many promises, I am sure I will become a better (more regular)&amp;nbsp;blogger&amp;nbsp;and a better(more&amp;nbsp;knowledgeable)&amp;nbsp;DBA. I might even start thinking of writing something serious one of these days.&lt;/P&gt;
&lt;P&gt;Although I am filled with &lt;A href="http://neopoleon.com/blog/posts/18019.aspx"&gt;enthusiasma&lt;/A&gt; (Rory Blythe will crucify me for plagiarism), it can be pretty lonely being an MVP in Africa. We are only 6 in the whole of West, East and Central Africa (WECA) and almost&amp;nbsp;out of reach of most MVP 'connectedness' programs like the summits, regionals, and most serious events in both the geographical and&amp;nbsp;financial dimensions. Hey, we are the emerging market and I am sure the other MVP's may&amp;nbsp;have felt the same at one time. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks to all the guys who made this possible. You are my MVP's (Most Valuable People).&lt;/P&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=10508" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry><entry><title>Take 5</title><link rel="alternate" type="text/html" href="http://blogs.geekdojo.net/nathan/archive/2006/01/12/9605.aspx" /><id>http://blogs.geekdojo.net/nathan/archive/2006/01/12/9605.aspx</id><published>2006-01-12T10:43:00Z</published><updated>2006-01-12T10:43:00Z</updated><content type="html">&lt;P&gt;From the recently announced MVP awardees list, I see that Africa now has 5 MVPs (I think they are all in development-related categories) outside South Africa. It has taken a very long time [more than a decade]for Microsoft to appreciate and award people in the ever-growing developer community in the WECA (West, East and Central Africa) region. Granted, Africa does not offer much in terms of sales/licenses figures, but I&amp;nbsp;feel that that MSFT is beginning to&amp;nbsp;take serious notice as they push into what they are calling "emerging markets". &lt;/P&gt;
&lt;P&gt;Congrats to all the new African MVPs!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.geekdojo.net/aggbug.aspx?PostID=9605" width="1" height="1"&gt;</content><author><name>nathan</name><uri>http://blogs.geekdojo.net/members/nathan.aspx</uri></author></entry></feed>