<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>zlika&#039;s &#187; MS SQL Server</title>
	<atom:link href="http://zlika.org/index.php/category/it/ms-sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://zlika.org</link>
	<description>Think SMART!</description>
	<lastBuildDate>Sat, 08 Oct 2011 15:38:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>How to store UTF-8 data in SQL Server</title>
		<link>http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/</link>
		<comments>http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 22:09:02 +0000</pubDate>
		<dc:creator>zlika</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[SSMS]]></category>
		<category><![CDATA[Transact-SQL]]></category>

		<guid isPermaLink="false">http://zlika.org/?p=704</guid>
		<description><![CDATA[Very frequently we need to use the data type UTF-8 to store a data in different languages. As described in the MSDN page the UTF-8 data type is stored in the &#8216;Samples&#8217; folder in SQL Server (Server\100\Samples\Engine\Programmability\CLR\UTF8String). You just need to activate it.

Create data type UTF-8
1. Generate a strong name key file
1.1. Open Command Prompt [...]]]></description>
			<content:encoded><![CDATA[<p>Very frequently we need to use the data type UTF-8 to store a data in different languages. As described in the <a title="Readme_UTF8 UDT Sample" href="http://msdn.microsoft.com/en-us/library/ms160893(SQL.100).aspx" target="_blank">MSDN page</a> the UTF-8 data type is stored in the &#8216;Samples&#8217; folder in SQL Server (Server\100\Samples\Engine\Programmability\CLR\UTF8String). You just need to activate it.</p>
<p><span id="more-704"></span><br />
<strong><span style="text-decoration: underline;">Create data type UTF-8</span></strong></p>
<p><strong>1. Generate a strong name key file</strong><br />
1.1. Open Command Prompt (Start &#8211;&gt; Run &#8211;&gt; &#8216;cmd&#8217;)<br />
1.2. Change directory (C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin)<br />
1.3. Generate the key (C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin&gt;sn -k &#8220;C:\Program Files\Microsoft SQL Server\100\Samples\SampleKey.snk&#8221;)</p>
<p><strong>2. Build the sample</strong><br />
2.1. Open Microsoft Visual Studio<br />
2.2. Open &#8216;C:\Program Files\Microsoft SQL Server\100\Samples\Engine\Programmability\CLR\UTF8String\CS\UTF8String.sln&#8217;<br />
2.3. Build &#8211;&gt; Build UTF8String</p>
<p><strong>3. Install UTF-8 data type</strong><br />
3.1. Open SQL Server Management Studio<br />
3.2. Open &#8216;C:\Program Files\Microsoft SQL Server\100\Samples\Engine\Programmability\CLR\UTF8String\Scripts\InstallCS.sql&#8217;<br />
3.3. Execute it<br />
3.4. Test UTF-8 data type (C:\Program Files\Microsoft SQL Server\100\Samples\Engine\Programmability\CLR\UTF8String\Scripts\Test.sql)<br />
3.4.1. Fix the error message &#8216;<span style="color: #ff0000;">Msg 6263, Level 16, State 1, Line 2<br />
Execution of user code in the .NET Framework is disabled. Enable &#8220;clr enabled&#8221; configuration option.</span>&#8216;</p>
<pre class="brush: sql;">
sp_configure 'clr enabled', 1;
RECONFIGURE;
</pre>
<p>3.4.2. Test UTF-8</p>
<pre class="brush: sql;">
DECLARE @u Utf8String;
SET @u = CONVERT(Utf8String, 'hello world');
SELECT
	@u.ToString()
	, CONVERT(varbinary(8000), @u)
	, SUBSTRING(@u.ToString(), 1, 5)
	, @u.Utf8Bytes;
</pre>
<div id="attachment_732" class="wp-caption aligncenter" style="width: 759px"><a href="http://zlika.org/wp-content/uploads/2011/03/02.png" rel="lightbox[704]"><img src="http://zlika.org/wp-content/uploads/2011/03/02.png" alt="" title="The result" width="749" height="75" class="size-full wp-image-732" /></a><p class="wp-caption-text">The result</p></div>
<p><strong><span style="text-decoration: underline;">Create PHP form to insert a UTF-8 data</span></strong></p>
<p><strong>1. Create table</strong></p>
<pre class="brush: sql;">
USE zlika;

CREATE TABLE CharsetTest
(
	[Language] VARCHAR(50)
	, [Phrase] UTF8String
);
</pre>
<p><strong>2. Create PHP form (insert.php)</strong></p>
<pre class="brush: php;">
&lt;html&gt;
&lt;head&gt;
	&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
	&lt;title&gt;Charset Test&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;?php
// Connect to SQL Server
$server = 'ZLIKA';
$username = 'zlika';
$password = 'myPassword';
$connect = mssql_connect($server, $username, $password) or die ('No server connection!');
$sqldb = mssql_select_db('zlika', $connect) or die ('No database connection!');

// Get the variables
$language = $_POST['language'];
$phrase = $_POST['phrase'];

// Insert records in the database
$query = &quot;INSERT INTO CharsetTest (Language, Phrase) SELECT '&quot; . $language . &quot;', '&quot; . $phrase . &quot;'&quot;;
$result = mssql_query($query);

// Close database connection
mssql_close($connect);
?&gt;

&lt;form action=&quot;insert.php&quot; method=&quot;post&quot;&gt;
	Language: &lt;input name=&quot;language&quot; /&gt;&lt;br /&gt;
	Phrase: &lt;input name=&quot;phrase&quot; /&gt;&lt;br /&gt;
	&lt;input type=&quot;Submit&quot; /&gt;
&lt;/form&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>3. Insert test data</strong></p>
<blockquote><p>Bulgarian &#8211;&gt; Честита Нова Година!<br />
Arabic &#8211;&gt; سنة جديدة سعيدة!<br />
Armenian &#8212; &gt; Շնորհավոր Նոր Տարի<br />
Azarbaijani &#8211;&gt; Yeni iliniz mübarək<br />
Catalan &#8211;&gt; Feliç Any Nou!<br />
Chinese (Traditional) &#8211;&gt; 新年快樂<br />
Polish &#8211;&gt; Szczęśliwego Nowego Roku!<br />
Thai &#8211;&gt; สวัสดีปีใหม่<br />
hindi &#8211;&gt; नया साल मुबारक हो</p></blockquote>
<p><strong>4. Check the content of the table (check.php)</strong></p>
<pre class="brush: php;">
&lt;html&gt;
&lt;head&gt;
	&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
	&lt;title&gt;Charset Test&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;?php

// Connect to SQL Server
$server = 'ZLIKA';
$username = 'zlika';
$password = 'myPassword';
$connect = mssql_connect($server, $username, $password) or die ('No server connection!');
$sqldb = mssql_select_db('zlika', $connect) or die ('No database connection!');

// Select the data
$query = 'SELECT Language, Phrase.ToString() AS Phrase FROM CharsetTest';
$result = mssql_query($query);

//Retrieving data Header
echo '&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;100%&quot;&gt;&lt;tr&gt;';

$i = 0;
while ($i &lt; mssql_num_fields($result))
{
	echo '&lt;th&gt;'. mssql_field_name($result, $i) . '&lt;/th&gt;';
	$i++;
}
echo '&lt;/tr&gt;';

//Retrieving rows
while ($row = mssql_fetch_array($result, MSSQL_ASSOC))
{
	echo '&lt;tr&gt;';
	foreach ($row as $data)
	{
		echo '&lt;td&gt;' . $data . '&lt;/td&gt;';
	}
	echo'&lt;/tr&gt;';
}

echo '&lt;/table&gt;';

// Close database connection
mssql_close($connect);

?&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>The result:</p>
<div id="attachment_723" class="wp-caption aligncenter" style="width: 353px"><a href="http://zlika.org/wp-content/uploads/2011/03/01.png" rel="lightbox[704]"><img class="size-full wp-image-723" title="The result" src="http://zlika.org/wp-content/uploads/2011/03/01.png" alt="" width="343" height="248" /></a><p class="wp-caption-text">The result</p></div>
<p>Félicitations</p>
<hr size="1" noshade>
<p style="font-family = verdana, tahoma, arial, sans-serif; font-size: 10px;">
<a title="How to store UTF-8 data in SQL Server" href="http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/"><b>How to store UTF-8 data in SQL Server</b></a> <br />
Author: zlika (Peter Lalovsky), Category: <a href="http://zlika.org/index.php/category/it/" title="View all posts in IT" rel="category tag">IT</a>, <a href="http://zlika.org/index.php/category/it/ms-sql-server/" title="View all posts in MS SQL Server" rel="category tag">MS SQL Server</a>, <a href="http://zlika.org/index.php/category/it/php/" title="View all posts in PHP" rel="category tag">PHP</a>, <a href="http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/#comments">%%comment_text%%</a>

<br />

Add to:
<a title="Share on Delicious" href="http://del.icio.us/post?url=http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/&title=How to store UTF-8 data in SQL Server">Delicious</a> | 
<a title="Share on Facebook" href="http://www.facebook.com/sharer.php?u=http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/&t=How to store UTF-8 data in SQL Server">Facebook</a> | 
<a title="Share on Twitter" href="http://twitter.com/home?status=Currently reading http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/">Twitter</a> | <a title="Share on Live" href="http://favorites.live.com/quickadd.aspx?url=http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/&title=How to store UTF-8 data in SQL Server">Live</a> | 
<a title="Share on Reddit" href="http://reddit.com/submit?url=http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/&title=How to store UTF-8 data in SQL Server">Reddit</a> | 
<a title="Share on Technorati" href="http://www.technorati.com/faves?add=http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/">Technorati</a> | 
<a title="Share on Digg" href="http://digg.com/submit?url=http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/&title=How to store UTF-8 data in SQL Server">Digg</a>

<br />

Followers: <a href="http://www.technorati.com/search/http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/" title="Linking blogs to this article, on Technorati">Technorati</a> | <a href="http://www.google.com/blogsearch?hl=en&q=http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/" title="Linking blogs to this article, on Google">Google</a>

<br />

© 2011, <a href="http://zlika.org">zlika&#039;s</a> (<a href="http://zlika.org/index.php/feed/">RSS</a>)
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://zlika.org/index.php/2011/03/06/how-to-store-utf-8-data-in-sql-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MaraK</title>
		<link>http://zlika.org/index.php/2011/02/17/marak/</link>
		<comments>http://zlika.org/index.php/2011/02/17/marak/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 16:41:01 +0000</pubDate>
		<dc:creator>zlika</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://zlika.org/?p=712</guid>
		<description><![CDATA[I&#8217;m starting a project for management of a small store, using C# and SQL Server Express.
Félicitations


MaraK 
Author: zlika (Peter Lalovsky), Category: C#, IT, MS SQL Server, %%comment_text%%



Add to:
Delicious &#124; 
Facebook &#124; 
Twitter &#124; Live &#124; 
Reddit &#124; 
Technorati &#124; 
Digg



Followers: Technorati &#124; Google



© 2011, zlika&#039;s (RSS)

Feed enhanced by Better Feed from  Ozh
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m starting a project for management of a small store, using C# and SQL Server Express.</p>
<p>Félicitations</p>
<hr size="1" noshade>
<p style="font-family = verdana, tahoma, arial, sans-serif; font-size: 10px;">
<a title="MaraK" href="http://zlika.org/index.php/2011/02/17/marak/"><b>MaraK</b></a> <br />
Author: zlika (Peter Lalovsky), Category: <a href="http://zlika.org/index.php/category/it/csharp/" title="View all posts in C#" rel="category tag">C#</a>, <a href="http://zlika.org/index.php/category/it/" title="View all posts in IT" rel="category tag">IT</a>, <a href="http://zlika.org/index.php/category/it/ms-sql-server/" title="View all posts in MS SQL Server" rel="category tag">MS SQL Server</a>, <a href="http://zlika.org/index.php/2011/02/17/marak/#comments">%%comment_text%%</a>

<br />

Add to:
<a title="Share on Delicious" href="http://del.icio.us/post?url=http://zlika.org/index.php/2011/02/17/marak/&title=MaraK">Delicious</a> | 
<a title="Share on Facebook" href="http://www.facebook.com/sharer.php?u=http://zlika.org/index.php/2011/02/17/marak/&t=MaraK">Facebook</a> | 
<a title="Share on Twitter" href="http://twitter.com/home?status=Currently reading http://zlika.org/index.php/2011/02/17/marak/">Twitter</a> | <a title="Share on Live" href="http://favorites.live.com/quickadd.aspx?url=http://zlika.org/index.php/2011/02/17/marak/&title=MaraK">Live</a> | 
<a title="Share on Reddit" href="http://reddit.com/submit?url=http://zlika.org/index.php/2011/02/17/marak/&title=MaraK">Reddit</a> | 
<a title="Share on Technorati" href="http://www.technorati.com/faves?add=http://zlika.org/index.php/2011/02/17/marak/">Technorati</a> | 
<a title="Share on Digg" href="http://digg.com/submit?url=http://zlika.org/index.php/2011/02/17/marak/&title=MaraK">Digg</a>

<br />

Followers: <a href="http://www.technorati.com/search/http://zlika.org/index.php/2011/02/17/marak/" title="Linking blogs to this article, on Technorati">Technorati</a> | <a href="http://www.google.com/blogsearch?hl=en&q=http://zlika.org/index.php/2011/02/17/marak/" title="Linking blogs to this article, on Google">Google</a>

<br />

© 2011, <a href="http://zlika.org">zlika&#039;s</a> (<a href="http://zlika.org/index.php/feed/">RSS</a>)
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://zlika.org/index.php/2011/02/17/marak/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SELECT * or SELECT [Column Name] in IF statement in MS SQL Server</title>
		<link>http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/</link>
		<comments>http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 19:02:32 +0000</pubDate>
		<dc:creator>zlika</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[Transact-SQL]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Optimization]]></category>

		<guid isPermaLink="false">http://zlika.org/?p=554</guid>
		<description><![CDATA[When we decide how to manipulate the data, we use IF statement verification. For example if we export information about merchant sales, we have two common groups of merchants &#8211; these we scan (with serial numbers) and these we don&#8217;t scan. For both of them we use two BEGIN&#8230; END blocks. To verify the type [...]]]></description>
			<content:encoded><![CDATA[<p>When we decide how to manipulate the data, we use IF statement verification. For example if we export information about merchant sales, we have two common groups of merchants &#8211; these we scan (with serial numbers) and these we don&#8217;t scan. For both of them we use two BEGIN&#8230; END blocks. To verify the type we use IF statement which searches for a row in &#8216;RegisteredScans&#8217; table.</p>
<p><span id="more-554"></span> We can write the IF statement like:</p>
<pre class="brush: sql; highlight: [4];">
...
IF EXISTS
(
	SELECT *
	FROM RegisteredScans
	WHERE...
)
BEGIN
	...
END
...
</pre>
<p>or:</p>
<pre class="brush: sql; highlight: [4];">
...
IF EXISTS
(
	SELECT [Column Name]
	FROM RegisteredScans
	WHERE [Column Name]...
)
BEGIN
	...
END
...
</pre>
<p>The difference is that we select ALL or only the column that we use to verify the truth of the IF statement.</p>
<p>I created an example to demonstrate the difference between SELECT * and SELECT [Column Name]. First I need to know which table has most rows in AdventureWorks2008 database. On <a title="List tables and count rows" href="http://sqlserver2000.databases.aspfaq.com/how-do-i-get-a-list-of-sql-server-tables-and-their-row-counts.html" target="_blank">this address</a> I found the following script:</p>
<pre class="brush: sql;">
USE AdventureWorks2008
GO

ALTER PROCEDURE dbo.listTableRowCounts
AS
BEGIN
	SET NOCOUNT ON

	DECLARE @SQL VARCHAR(255)
	SET @SQL = 'DBCC UPDATEUSAGE (' + DB_NAME() + ')'
	EXEC(@SQL)

	CREATE TABLE #foo
	(
		tablename VARCHAR(255)
        , rc INT
	)

	INSERT #foo
	EXEC sp_msForEachTable
		'SELECT PARSENAME(''?'', 1),
		COUNT(*) FROM ?'
END

	SELECT tablename, rc
	FROM #foo
	ORDER BY rc DESC

	DROP TABLE #foo
GO
</pre>
<p>Then I executed the stored procedure</p>
<pre class="brush: sql;">
USE AdventureWorks2008
GO

EXEC dbo.listTableRowCounts
GO
</pre>
<p>And I found that the table &#8216;SalesOrderDetail&#8217; contains 121317 rows (most in the database). Next I wrote a script which uses Start time and End time to calculate the duration of execution of a code. In our example the code is:</p>
<pre class="brush: sql; highlight: [1];">
SELECT *
FROM SalesOrderDetail
GO
</pre>
<p>and</p>
<pre class="brush: sql; highlight: [1];">
SELECT SalesOrderID
FROM SalesOrderDetail
GO
</pre>
<p>When I select all the columns, the time for the operation is 6.594 seconds</p>
<pre class="brush: sql; highlight: [12];">
USE AdventureWorks2008
GO

-- Declare variables
DECLARE @Start TIME
DECLARE @End TIME

-- Set start time
SET @Start = GETDATE()

-- Operation
SELECT *
FROM Sales.SalesOrderDetail

-- Set end time
SET @End = GETDATE()

-- Calculate the difference in times
SELECT DATEDIFF(MS, @Start, @End) AS Milliseconds
GO
</pre>
<div id="attachment_558" class="wp-caption aligncenter" style="width: 517px"><a href="http://zlika.org/wp-content/uploads/2010/10/01.png" rel="lightbox[554]"><img class="size-full wp-image-558" title="SELECT * FROM..." src="http://zlika.org/wp-content/uploads/2010/10/01.png" alt="" width="507" height="164" /></a><p class="wp-caption-text">SELECT * FROM...</p></div>
<p>When I select the &#8216;SalesOrderID&#8217; column, the time for the operation is 2.470 seconds</p>
<div id="attachment_559" class="wp-caption aligncenter" style="width: 160px"><a href="http://zlika.org/wp-content/uploads/2010/10/02.png" rel="lightbox[554]"><img class="size-full wp-image-559" title="SELECT SalesOrderID FROM..." src="http://zlika.org/wp-content/uploads/2010/10/02.png" alt="" width="150" height="289" /></a><p class="wp-caption-text">SELECT SalesOrderID FROM...</p></div>
<p>When I select &#8216;rowguid&#8217; column, the time for the operation is 3.234 seconds</p>
<div id="attachment_560" class="wp-caption aligncenter" style="width: 344px"><a href="http://zlika.org/wp-content/uploads/2010/10/03.png" rel="lightbox[554]"><img class="size-full wp-image-560" title="SELECT rowguid FROM..." src="http://zlika.org/wp-content/uploads/2010/10/03.png" alt="" width="334" height="199" /></a><p class="wp-caption-text">SELECT rowguid FROM...</p></div>
<p>The difference between &#8216;SalesOrderID&#8217; and &#8216;rowguid&#8217; columns is that &#8216;SalesOrderID&#8217; is Primary Key, i.e. it&#8217;s indexed.</p>
<p>Félicitations</p>
<hr size="1" noshade>
<p style="font-family = verdana, tahoma, arial, sans-serif; font-size: 10px;">
<a title="SELECT * or SELECT [Column Name] in IF statement in MS SQL Server" href="http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/"><b>SELECT * or SELECT [Column Name] in IF statement in MS SQL Server</b></a> <br />
Author: zlika (Peter Lalovsky), Category: <a href="http://zlika.org/index.php/category/it/" title="View all posts in IT" rel="category tag">IT</a>, <a href="http://zlika.org/index.php/category/it/ms-sql-server/" title="View all posts in MS SQL Server" rel="category tag">MS SQL Server</a>, <a href="http://zlika.org/index.php/category/it/sql/" title="View all posts in Transact-SQL" rel="category tag">Transact-SQL</a>, <a href="http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/#comments">%%comment_text%%</a>

<br />

Add to:
<a title="Share on Delicious" href="http://del.icio.us/post?url=http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/&title=SELECT * or SELECT [Column Name] in IF statement in MS SQL Server">Delicious</a> | 
<a title="Share on Facebook" href="http://www.facebook.com/sharer.php?u=http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/&t=SELECT * or SELECT [Column Name] in IF statement in MS SQL Server">Facebook</a> | 
<a title="Share on Twitter" href="http://twitter.com/home?status=Currently reading http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/">Twitter</a> | <a title="Share on Live" href="http://favorites.live.com/quickadd.aspx?url=http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/&title=SELECT * or SELECT [Column Name] in IF statement in MS SQL Server">Live</a> | 
<a title="Share on Reddit" href="http://reddit.com/submit?url=http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/&title=SELECT * or SELECT [Column Name] in IF statement in MS SQL Server">Reddit</a> | 
<a title="Share on Technorati" href="http://www.technorati.com/faves?add=http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/">Technorati</a> | 
<a title="Share on Digg" href="http://digg.com/submit?url=http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/&title=SELECT * or SELECT [Column Name] in IF statement in MS SQL Server">Digg</a>

<br />

Followers: <a href="http://www.technorati.com/search/http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/" title="Linking blogs to this article, on Technorati">Technorati</a> | <a href="http://www.google.com/blogsearch?hl=en&q=http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/" title="Linking blogs to this article, on Google">Google</a>

<br />

© 2010, <a href="http://zlika.org">zlika&#039;s</a> (<a href="http://zlika.org/index.php/feed/">RSS</a>)
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://zlika.org/index.php/2010/10/31/select-or-select-column-name-in-if-statement-in-ms-sql-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Select server logins and their roles in SQL Server</title>
		<link>http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/</link>
		<comments>http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 21:25:37 +0000</pubDate>
		<dc:creator>zlika</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[SSMS]]></category>
		<category><![CDATA[Transact-SQL]]></category>

		<guid isPermaLink="false">http://zlika.org/?p=540</guid>
		<description><![CDATA[To view all the server logins and their roles I use the system view sys.syslogins and CASE to convert 1 to &#8220;Yes&#8221; and 0 to &#8220;No&#8221;.


-- Select all database logins and their server roles
USE master
GO

SELECT
	[name] AS [Login]
	, CASE sysadmin WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' ELSE 'N/A' END AS [sysadmin]
	, CASE securityadmin WHEN [...]]]></description>
			<content:encoded><![CDATA[<p>To view all the server logins and their roles I use the system view <a title="sys.syslogins" href="http://msdn.microsoft.com/en-us/library/ms178593.aspx" target="_blank">sys.syslogins</a> and <a title="CASE" href="http://msdn.microsoft.com/en-us/library/ms181765.aspx" target="_blank">CASE</a> to convert 1 to &#8220;Yes&#8221; and 0 to &#8220;No&#8221;.</p>
<p><span id="more-540"></span></p>
<pre class="brush: sql;">
-- Select all database logins and their server roles
USE master
GO

SELECT
	[name] AS [Login]
	, CASE sysadmin WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' ELSE 'N/A' END AS [sysadmin]
	, CASE securityadmin WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' ELSE 'N/A' END AS [securityadmin]
	, CASE serveradmin WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' ELSE 'N/A' END AS [serveradmin]
	, CASE setupadmin WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' ELSE 'N/A' END AS [setupadmin]
	, CASE processadmin WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' ELSE 'N/A' END AS [processadmin]
	, CASE diskadmin WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' ELSE 'N/A' END AS [diskadmin]
	, CASE dbcreator WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' ELSE 'N/A' END AS [dbcreator]

FROM sys.syslogins
GO
</pre>
<p>Félicitations</p>
<hr size="1" noshade>
<p style="font-family = verdana, tahoma, arial, sans-serif; font-size: 10px;">
<a title="Select server logins and their roles in SQL Server" href="http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/"><b>Select server logins and their roles in SQL Server</b></a> <br />
Author: zlika (Peter Lalovsky), Category: <a href="http://zlika.org/index.php/category/it/" title="View all posts in IT" rel="category tag">IT</a>, <a href="http://zlika.org/index.php/category/it/ms-sql-server/" title="View all posts in MS SQL Server" rel="category tag">MS SQL Server</a>, <a href="http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/#comments">%%comment_text%%</a>

<br />

Add to:
<a title="Share on Delicious" href="http://del.icio.us/post?url=http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/&title=Select server logins and their roles in SQL Server">Delicious</a> | 
<a title="Share on Facebook" href="http://www.facebook.com/sharer.php?u=http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/&t=Select server logins and their roles in SQL Server">Facebook</a> | 
<a title="Share on Twitter" href="http://twitter.com/home?status=Currently reading http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/">Twitter</a> | <a title="Share on Live" href="http://favorites.live.com/quickadd.aspx?url=http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/&title=Select server logins and their roles in SQL Server">Live</a> | 
<a title="Share on Reddit" href="http://reddit.com/submit?url=http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/&title=Select server logins and their roles in SQL Server">Reddit</a> | 
<a title="Share on Technorati" href="http://www.technorati.com/faves?add=http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/">Technorati</a> | 
<a title="Share on Digg" href="http://digg.com/submit?url=http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/&title=Select server logins and their roles in SQL Server">Digg</a>

<br />

Followers: <a href="http://www.technorati.com/search/http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/" title="Linking blogs to this article, on Technorati">Technorati</a> | <a href="http://www.google.com/blogsearch?hl=en&q=http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/" title="Linking blogs to this article, on Google">Google</a>

<br />

© 2010, <a href="http://zlika.org">zlika&#039;s</a> (<a href="http://zlika.org/index.php/feed/">RSS</a>)
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://zlika.org/index.php/2010/10/24/select-server-logins-and-their-roles-in-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Filegroups and Autogrowth in MS SQL Server</title>
		<link>http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/</link>
		<comments>http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 03:27:10 +0000</pubDate>
		<dc:creator>zlika</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[SSMS]]></category>
		<category><![CDATA[Transact-SQL]]></category>

		<guid isPermaLink="false">http://zlika.org/?p=464</guid>
		<description><![CDATA[Yesterday I was asked about the way a table is stored in several files in a filegroup.

The current example explains it. First, I create a database, containing two secondary data files in a filegroup.

CREATE DATABASE zlika ON PRIMARY
(
	NAME = N'zlika'
	, FILENAME = N'C:\Databases\zlika.mdf'
)
,

FILEGROUP zlikaGroup
(
	NAME = N'fg1_1'
	, FILENAME = N'C:\Databases\fg1_1.ndf'
)
,
(
	NAME = N'fg1_2'
	, FILENAME = N'C:\Databases\fg1_2.ndf'
)

LOG ON
(
	NAME [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I was asked about the way a table is stored in several files in a filegroup.</p>
<p><span id="more-464"></span></p>
<p>The current example explains it. First, I create a database, containing two secondary data files in a filegroup.</p>
<pre class="brush: sql;">
CREATE DATABASE zlika ON PRIMARY
(
	NAME = N'zlika'
	, FILENAME = N'C:\Databases\zlika.mdf'
)
,

FILEGROUP zlikaGroup
(
	NAME = N'fg1_1'
	, FILENAME = N'C:\Databases\fg1_1.ndf'
)
,
(
	NAME = N'fg1_2'
	, FILENAME = N'C:\Databases\fg1_2.ndf'
)

LOG ON
(
	NAME = N'zlika_log'
	, FILENAME = N'C:\Databases\zlika_log.ldf'
)
GO
</pre>
<p>The sizes of the files are as follow:</p>
<div id="attachment_465" class="wp-caption aligncenter" style="width: 182px"><a href="http://zlika.org/wp-content/uploads/2010/09/01.jpg" rel="lightbox[464]"><img class="size-full wp-image-465" title="File sizes after creation of the database" src="http://zlika.org/wp-content/uploads/2010/09/01.jpg" alt="" width="172" height="73" /></a><p class="wp-caption-text">File sizes after creation of the database</p></div>
<p>Next I create a table that stores its rows in the filegroup</p>
<pre class="brush: sql;">
USE zlika
GO

CREATE TABLE TestTable
(
	ID INT IDENTITY NOT NULL
	, FirstName VARCHAR(50) NOT NULL
	, LastName VARCHAR(50) NOT NULL
)
ON zlikaGroup
GO
</pre>
<p>I populate the table with any information</p>
<pre class="brush: sql;">
USE zlika
GO

INSERT INTO TestTable VALUES ('George', 'Henderson')
GO 50000
</pre>
<p>The sizes of the files are as follow:</p>
<div id="attachment_467" class="wp-caption aligncenter" style="width: 181px"><a href="http://zlika.org/wp-content/uploads/2010/09/02.jpg" rel="lightbox[464]"><img class="size-full wp-image-467" title="File sizes after the population of the table" src="http://zlika.org/wp-content/uploads/2010/09/02.jpg" alt="" width="171" height="69" /></a><p class="wp-caption-text">File sizes after the population of the table</p></div>
<p>I execute the same script and check the sizes of the files once again:</p>
<div id="attachment_468" class="wp-caption aligncenter" style="width: 182px"><a href="http://zlika.org/wp-content/uploads/2010/09/03.jpg" rel="lightbox[464]"><img class="size-full wp-image-468" title="File sizes after adding more data" src="http://zlika.org/wp-content/uploads/2010/09/03.jpg" alt="" width="172" height="69" /></a><p class="wp-caption-text">File sizes after adding more data</p></div>
<p>The answer is: MS SQL Server stores the data in several files in a filegroup according to their Autogrowth settings. The database I have created autogrows the secondary data files by 1MB:</p>
<div id="attachment_469" class="wp-caption aligncenter" style="width: 585px"><a href="http://zlika.org/wp-content/uploads/2010/09/04.jpg" rel="lightbox[464]"><img class="size-full wp-image-469" title="The properties of the database - Files" src="http://zlika.org/wp-content/uploads/2010/09/04.jpg" alt="" width="575" height="118" /></a><p class="wp-caption-text">The properties of the database - Files</p></div>
<p>Félicitations</p>
<hr size="1" noshade>
<p style="font-family = verdana, tahoma, arial, sans-serif; font-size: 10px;">
<a title="Filegroups and Autogrowth in MS SQL Server" href="http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/"><b>Filegroups and Autogrowth in MS SQL Server</b></a> <br />
Author: zlika (Peter Lalovsky), Category: <a href="http://zlika.org/index.php/category/it/" title="View all posts in IT" rel="category tag">IT</a>, <a href="http://zlika.org/index.php/category/it/ms-sql-server/" title="View all posts in MS SQL Server" rel="category tag">MS SQL Server</a>, <a href="http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/#comments">%%comment_text%%</a>

<br />

Add to:
<a title="Share on Delicious" href="http://del.icio.us/post?url=http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/&title=Filegroups and Autogrowth in MS SQL Server">Delicious</a> | 
<a title="Share on Facebook" href="http://www.facebook.com/sharer.php?u=http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/&t=Filegroups and Autogrowth in MS SQL Server">Facebook</a> | 
<a title="Share on Twitter" href="http://twitter.com/home?status=Currently reading http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/">Twitter</a> | <a title="Share on Live" href="http://favorites.live.com/quickadd.aspx?url=http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/&title=Filegroups and Autogrowth in MS SQL Server">Live</a> | 
<a title="Share on Reddit" href="http://reddit.com/submit?url=http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/&title=Filegroups and Autogrowth in MS SQL Server">Reddit</a> | 
<a title="Share on Technorati" href="http://www.technorati.com/faves?add=http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/">Technorati</a> | 
<a title="Share on Digg" href="http://digg.com/submit?url=http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/&title=Filegroups and Autogrowth in MS SQL Server">Digg</a>

<br />

Followers: <a href="http://www.technorati.com/search/http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/" title="Linking blogs to this article, on Technorati">Technorati</a> | <a href="http://www.google.com/blogsearch?hl=en&q=http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/" title="Linking blogs to this article, on Google">Google</a>

<br />

© 2010, <a href="http://zlika.org">zlika&#039;s</a> (<a href="http://zlika.org/index.php/feed/">RSS</a>)
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://zlika.org/index.php/2010/09/18/filegroups-and-autogrowth-in-ms-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DENSE_RANK() function in MS SQL Server</title>
		<link>http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/</link>
		<comments>http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 04:46:24 +0000</pubDate>
		<dc:creator>zlika</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[Transact-SQL]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SSMS]]></category>

		<guid isPermaLink="false">http://zlika.org/?p=430</guid>
		<description><![CDATA[As we can read in Books Online in SQL Server
Ranking functions return a ranking value for each row in a partition. Depending on the function that is used, some rows might receive the same value as other rows. Ranking functions are nondeterministic.
I have created simple example for usage of the Ranking function DENSE_RANK().

We have a [...]]]></description>
			<content:encoded><![CDATA[<p>As we can read in Books Online in SQL Server</p>
<blockquote><p>Ranking functions return a ranking value for each row in a partition. Depending on the function that is used, some rows might receive the same value as other rows. Ranking functions are nondeterministic.</p></blockquote>
<p>I have created simple example for usage of the Ranking function DENSE_RANK().</p>
<p><span id="more-430"></span></p>
<p>We have a database with the addresses of all the residents of a city. Many of them have changed their addresses several times. They have changed them by using web application, because the authorities have decided that&#8217;s the most convenient manner for everybody. Down the years, one user may have more then one record (change of address). We need to select only one actual address or only one precedent address per user. We need to partition the table and select only the data we need.</p>
<p>First I create the tables, keys and I populate them.</p>
<pre class="brush: sql;">USE zlika
GO

-- Create Tables and keys
CREATE TABLE [Users]
(
	[ID] INT IDENTITY (1, 1) PRIMARY KEY
	, [FirstName] VARCHAR(50)
	, [LastName] VARCHAR(50)
)
GO

CREATE TABLE [Address]
(
	[ID] INT IDENTITY (1, 1) PRIMARY KEY
	, [UserID] INT
	, [StreetNo] INT
	, [StreetName] VARCHAR(100)
	, [City] VARCHAR(100)
	, [Phone] VARCHAR(25)
	, [DateOfRegistration] DATETIME NULL
)
GO

ALTER TABLE [Address]
WITH CHECK ADD CONSTRAINT
FK_Users_ID FOREIGN KEY
(
	UserID
)
REFERENCES Users
(
	ID
)
GO

ALTER TABLE [Address]
ADD CONSTRAINT DF_Address_DateOfRegistration
	DEFAULT (GETDATE())
	FOR DateOfRegistration
GO

-- Populate Tables
INSERT INTO [Users] (FirstName, LastName) VALUES
('First', 'Smith')
, ('Second', 'George')
, ('Third', 'Thompson')
GO

SELECT * FROM Users
GO

INSERT INTO [Address] (UserID, StreetNo, StreetName, City, Phone) VALUES (1, 111, 'StreetName1', 'City1', 11111)
WAITFOR DELAY '00:00:01'
INSERT INTO [Address] (UserID, StreetNo, StreetName, City, Phone) VALUES (1, 222, 'StreetName2', 'City2', 22222)
WAITFOR DELAY '00:00:01'
INSERT INTO [Address] (UserID, StreetNo, StreetName, City, Phone) VALUES (1, 333, 'StreetName3', 'City3', 33333)
WAITFOR DELAY '00:00:01'
INSERT INTO [Address] (UserID, StreetNo, StreetName, City, Phone) VALUES (1, 444, 'StreetName4', 'City4', 44444)
WAITFOR DELAY '00:00:01'
INSERT INTO [Address] (UserID, StreetNo, StreetName, City, Phone) VALUES (1, 555, 'StreetName5', 'City5', 55555)
WAITFOR DELAY '00:00:01'
INSERT INTO [Address] (UserID, StreetNo, StreetName, City, Phone) VALUES (2, 1111, 'StreetName11', 'City11', 1111111111)
WAITFOR DELAY '00:00:01'
INSERT INTO [Address] (UserID, StreetNo, StreetName, City, Phone) VALUES (2, 2222, 'StreetName22', 'City22', 2222222222)
WAITFOR DELAY '00:00:01'
INSERT INTO [Address] (UserID, StreetNo, StreetName, City, Phone) VALUES (3, 3, 'StreetName333', 'City333', 333)
GO

SELECT * FROM [Address]
GO
</pre>
<p>Users table contains three rows as follow:</p>
<div id="attachment_436" class="wp-caption aligncenter" style="width: 233px"><a href="http://zlika.org/wp-content/uploads/2010/08/01.png" rel="lightbox[430]"><img class="size-full wp-image-436" title="Users Table" src="http://zlika.org/wp-content/uploads/2010/08/01.png" alt="" width="223" height="113" /></a><p class="wp-caption-text">Users Table</p></div>
<p>Address table contains eight rows for these three users:</p>
<div id="attachment_439" class="wp-caption aligncenter" style="width: 619px"><a href="http://zlika.org/wp-content/uploads/2010/08/02.png" rel="lightbox[430]"><img class="size-full wp-image-439" title="Address Table" src="http://zlika.org/wp-content/uploads/2010/08/02.png" alt="" width="609" height="217" /></a><p class="wp-caption-text">Address Table</p></div>
<p>We need to partition the table. That means we need to split the data according to some logic. DANSE_RANK() function does it for us. It split users by their ID (UserID), order the partitions descending by date and adds ranks.</p>
<pre class="brush: sql; highlight: [18,19];">
SELECT
	A.ID
	, A.UserID
	, U.FirstName
	, U.LastName
	, A.StreetNo
	, A.StreetName
	, A.City
	, A.Phone
	, A.DateOfRegistration
	, DENSE_RANK() OVER (PARTITION BY UserID ORDER BY DateOfRegistration DESC) AS [Rank]

FROM
	[Address] AS A
	INNER JOIN dbo.[Users] AS U
		ON A.UserID = U.ID

--WHERE
--	[Rank] = 2
GO
</pre>
<p>The result of the query is the data plus a temporary column for ranking.</p>
<div id="attachment_441" class="wp-caption aligncenter" style="width: 813px"><a href="http://zlika.org/wp-content/uploads/2010/08/03.png" rel="lightbox[430]"><img class="size-full wp-image-441  " title="Adding DENSE_RANK column" src="http://zlika.org/wp-content/uploads/2010/08/03.png" alt="" width="803" height="216" /></a><p class="wp-caption-text">Adding DENSE_RANK column (click on image)</p></div>
<p>If I try to reach the result in single query (uncommenting lines 18 and 19), I&#8217;ll get &#8220;Invalid column name &#8216;Rank&#8217;&#8221; error. The reason is that I generate the [Rank] column during the selection of the data and I can&#8217;t filter it at this time.</p>
<div id="attachment_444" class="wp-caption aligncenter" style="width: 756px"><a href="http://zlika.org/wp-content/uploads/2010/08/04.png" rel="lightbox[430]"><img class="size-full wp-image-444" title="Invalid column name 'Rank'" src="http://zlika.org/wp-content/uploads/2010/08/04.png" alt="" width="746" height="355" /></a><p class="wp-caption-text">Invalid column name &#39;Rank&#39;</p></div>
<p>To get the data that I need, I simulate a View &#8211; create a temporary table and read a filtered data from it.</p>
<pre class="brush: sql;">
USE zlika
GO

CREATE TABLE #Temp
(
	ID INT
	, [UserID] INT
	, [FirstName] VARCHAR(50)
	, [LastName] VARCHAR(50)
	, [StreetNo] INT
	, [StreetName] VARCHAR(100)
	, [City] VARCHAR(100)
	, [Phone] VARCHAR(25)
	, [DateOfRegistration] DATETIME NULL
	, [Rank] INT
)
GO

INSERT INTO #Temp
SELECT
	A.ID
	, A.UserID
	, U.FirstName
	, U.LastName
	, A.StreetNo
	, A.StreetName
	, A.City
	, A.Phone
	, DateOfRegistration, DENSE_RANK() OVER (PARTITION BY UserID ORDER BY DateOfRegistration DESC) AS [Rank]

FROM
	[Address] AS A
	INNER JOIN dbo.[Users] AS U
		ON A.UserID = U.ID
GO

SELECT
	ID
	, UserID
	, FirstName
	, LastName
	, StreetNo
	, StreetName
	, City
	, Phone
	, DateOfRegistration

FROM
	#Temp

WHERE
	[Rank] = 1

ORDER BY
	UserID
GO

DROP TABLE #Temp
GO
</pre>
<p>The result is the last address of the residents. If we need the precedent addresses, we&#8217;ll filter the [Rank] column to equals 2.</p>
<div id="attachment_445" class="wp-caption aligncenter" style="width: 768px"><a href="http://zlika.org/wp-content/uploads/2010/08/05.png" rel="lightbox[430]"><img class="size-full wp-image-445" title="DENSE_RANK result" src="http://zlika.org/wp-content/uploads/2010/08/05.png" alt="" width="758" height="115" /></a><p class="wp-caption-text">DENSE_RANK result</p></div>
<p>Félicitations</p>
<hr size="1" noshade>
<p style="font-family = verdana, tahoma, arial, sans-serif; font-size: 10px;">
<a title="DENSE_RANK() function in MS SQL Server" href="http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/"><b>DENSE_RANK() function in MS SQL Server</b></a> <br />
Author: zlika (Peter Lalovsky), Category: <a href="http://zlika.org/index.php/category/it/" title="View all posts in IT" rel="category tag">IT</a>, <a href="http://zlika.org/index.php/category/it/ms-sql-server/" title="View all posts in MS SQL Server" rel="category tag">MS SQL Server</a>, <a href="http://zlika.org/index.php/category/it/sql/" title="View all posts in Transact-SQL" rel="category tag">Transact-SQL</a>, <a href="http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/#comments">%%comment_text%%</a>

<br />

Add to:
<a title="Share on Delicious" href="http://del.icio.us/post?url=http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/&title=DENSE_RANK() function in MS SQL Server">Delicious</a> | 
<a title="Share on Facebook" href="http://www.facebook.com/sharer.php?u=http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/&t=DENSE_RANK() function in MS SQL Server">Facebook</a> | 
<a title="Share on Twitter" href="http://twitter.com/home?status=Currently reading http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/">Twitter</a> | <a title="Share on Live" href="http://favorites.live.com/quickadd.aspx?url=http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/&title=DENSE_RANK() function in MS SQL Server">Live</a> | 
<a title="Share on Reddit" href="http://reddit.com/submit?url=http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/&title=DENSE_RANK() function in MS SQL Server">Reddit</a> | 
<a title="Share on Technorati" href="http://www.technorati.com/faves?add=http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/">Technorati</a> | 
<a title="Share on Digg" href="http://digg.com/submit?url=http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/&title=DENSE_RANK() function in MS SQL Server">Digg</a>

<br />

Followers: <a href="http://www.technorati.com/search/http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/" title="Linking blogs to this article, on Technorati">Technorati</a> | <a href="http://www.google.com/blogsearch?hl=en&q=http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/" title="Linking blogs to this article, on Google">Google</a>

<br />

© 2010, <a href="http://zlika.org">zlika&#039;s</a> (<a href="http://zlika.org/index.php/feed/">RSS</a>)
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://zlika.org/index.php/2010/08/04/simple-usage-of-dense_rank-function-in-ms-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple SSIS Project &#8211; export to flat file, FTP upload, archive (create the package)</title>
		<link>http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/</link>
		<comments>http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 18:26:29 +0000</pubDate>
		<dc:creator>zlika</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false">http://zlika.org/?p=254</guid>
		<description><![CDATA[Microsoft® SQL Server™ Integration Services is the tool that connects the database to the world and works instead of us. I&#8217;ll show you how to extract simple data from the database, store the files in a the file system, rename them, upload them on FTP and report the errors to administrator if any. 

In this first [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft® SQL Server™ Integration Services is the tool that connects the database to the world and works instead of us. I&#8217;ll show you how to extract simple data from the database, store the files in a the file system, rename them, upload them on FTP and report the errors to administrator if any. </p>
<p><span id="more-254"></span></p>
<p>In this first part I will create the package. Next I&#8217;ll implement it into SQL Server.</p>
<p>The steps we need are:<br />
1. Create the directories for storing the files &#8211; C:\Temp\Source\, C:\Temp\ForUpload\, C:\Temp\Archive\. If they already exist, we use them instead of create them<br />
2. Move the files from Source directory to ForUpload directory with changing of the name (adding date and time)<br />
3. Upload the renamed files on FTP server<br />
4. Move the files to Archive folder</p>
<p>First, create a new SSIS project (File &#8211;&gt; New &#8211;&gt; Project) in SQL Server Business Intelligence Development Studio.</p>
<div id="attachment_317" class="wp-caption aligncenter" style="width: 693px"><a href="http://zlika.org/wp-content/uploads/2010/03/011.png" rel="lightbox[254]"><img class="size-full wp-image-317" title="New SSIS Project" src="http://zlika.org/wp-content/uploads/2010/03/011.png" alt="" width="683" height="490" /></a><p class="wp-caption-text">New SSIS Project</p></div>
<p>Rename the package.</p>
<div id="attachment_319" class="wp-caption aligncenter" style="width: 273px"><a href="http://zlika.org/wp-content/uploads/2010/03/021.png" rel="lightbox[254]"><img class="size-full wp-image-319" title="Rename package" src="http://zlika.org/wp-content/uploads/2010/03/021.png" alt="" width="263" height="152" /></a><p class="wp-caption-text">Rename package</p></div>
<p>Create Data Source &#8211; that&#8217;s the place where we will read the data from &#8211; MS SQL Server. In Solution Explorer, right click on Data Sources &#8211;&gt; New Data Source&#8230;</p>
<div id="attachment_321" class="wp-caption aligncenter" style="width: 620px"><a href="http://zlika.org/wp-content/uploads/2010/03/031.png" rel="lightbox[254]"><img class="size-full wp-image-321" title="Create Data Source" src="http://zlika.org/wp-content/uploads/2010/03/031.png" alt="" width="610" height="535" /></a><p class="wp-caption-text">Create Data Source</p></div>
<p>To use the Data Source, I create a New Connection from the existing Data Source. Right click on Connection Managers &#8211;&gt; New Connection From Data Source&#8230;</p>
<div id="attachment_323" class="wp-caption aligncenter" style="width: 393px"><a href="http://zlika.org/wp-content/uploads/2010/03/041.png" rel="lightbox[254]"><img class="size-full wp-image-323" title="Create New Connection from Data Source" src="http://zlika.org/wp-content/uploads/2010/03/041.png" alt="" width="383" height="329" /></a><p class="wp-caption-text">Create New Connection from Data Source</p></div>
<p>Create the global variables for the directories.</p>
<div id="attachment_401" class="wp-caption aligncenter" style="width: 465px"><a href="http://zlika.org/wp-content/uploads/2010/06/06.png" rel="lightbox[254]"><img class="size-full wp-image-401" title="Create global variables" src="http://zlika.org/wp-content/uploads/2010/06/06.png" alt="" width="455" height="131" /></a><p class="wp-caption-text">Create global variables</p></div>
<p style="text-align: center;">
<p>Create the directories &#8211; Source, ForUpload, Archive. Drag the File System Task from Toolbox pane.</p>
<div id="attachment_325" class="wp-caption aligncenter" style="width: 393px"><a href="http://zlika.org/wp-content/uploads/2010/03/051.png" rel="lightbox[254]"><img class="size-full wp-image-325" title="Create Folders" src="http://zlika.org/wp-content/uploads/2010/03/051.png" alt="" width="383" height="373" /></a><p class="wp-caption-text">Create Folders</p></div>
<p>Right click on File System Task to set the properties of the folders.</p>
<div id="attachment_330" class="wp-caption aligncenter" style="width: 608px"><a href="http://zlika.org/wp-content/uploads/2010/03/07.png" rel="lightbox[254]"><img class="size-full wp-image-330 " title="Create Folder" src="http://zlika.org/wp-content/uploads/2010/03/07.png" alt="" width="598" height="541" /></a><p class="wp-caption-text">Create Folder</p></div>
<p>For Exporting the data to flat file, first, I create Data Flow Task.</p>
<div id="attachment_332" class="wp-caption aligncenter" style="width: 599px"><a href="http://zlika.org/wp-content/uploads/2010/03/08.png" rel="lightbox[254]"><img class="size-full wp-image-332" title="Create Data Flow Task" src="http://zlika.org/wp-content/uploads/2010/03/08.png" alt="" width="589" height="159" /></a><p class="wp-caption-text">Create Data Flow Task</p></div>
<p>Data Flow Tab &#8211;&gt; Toolbox &#8211;&gt; Data Flow Sources (ADO NET Source), Data Flow Transformation Source (Sort), Data Flow Destinations.</p>
<p>Edit ADO NET Source. I have written the query in SSMS, but I can build it on this step.</p>
<div id="attachment_334" class="wp-caption aligncenter" style="width: 660px"><a href="http://zlika.org/wp-content/uploads/2010/03/09.png" rel="lightbox[254]"><img class="size-full wp-image-334" title="Edit ADO NET Source" src="http://zlika.org/wp-content/uploads/2010/03/09.png" alt="" width="650" height="636" /></a><p class="wp-caption-text">Edit ADO NET Source</p></div>
<p>Edit Sort</p>
<div id="attachment_338" class="wp-caption aligncenter" style="width: 590px"><a href="http://zlika.org/wp-content/uploads/2010/03/10.png" rel="lightbox[254]"><img class="size-full wp-image-338" title="Edit Sort Transformation" src="http://zlika.org/wp-content/uploads/2010/03/10.png" alt="" width="580" height="618" /></a><p class="wp-caption-text">Edit Sort Transformation</p></div>
<p>Create Flat File Connection &#8211; Delimited</p>
<div id="attachment_339" class="wp-caption aligncenter" style="width: 560px"><a href="http://zlika.org/wp-content/uploads/2010/03/11.png" rel="lightbox[254]"><img class="size-full wp-image-339" title="Create Flat File Connection" src="http://zlika.org/wp-content/uploads/2010/03/11.png" alt="" width="550" height="562" /></a><p class="wp-caption-text">Create Flat File Connection</p></div>
<p>I chose the delimiter ($) in the Columns section</p>
<p>The next step is to rename the files by adding to filename the date and time. I use Foreach Loop Container to cover all the files in the Source folder. I move them to ForUpload folder and rename them in one step. I do it like this, because I need to know on which step the execution is failed and in that case to handle the rest of operations manually.</p>
<div id="attachment_343" class="wp-caption aligncenter" style="width: 598px"><a href="http://zlika.org/wp-content/uploads/2010/03/12.png" rel="lightbox[254]"><img class="size-full wp-image-343" title="Add Foreach Loop Container" src="http://zlika.org/wp-content/uploads/2010/03/12.png" alt="" width="588" height="330" /></a><p class="wp-caption-text">Add Foreach Loop Container</p></div>
<p>Create the local variables for Foreach Loop Container. We need to combine the file path with file name while looping the folder. In the Filename variable we will store the names of the files. To the variable Dir_ForUpload_Filename we will add the date and time.</p>
<div id="attachment_405" class="wp-caption aligncenter" style="width: 610px"><a href="http://zlika.org/wp-content/uploads/2010/06/16.png" rel="lightbox[254]"><img class="size-full wp-image-405" title="Create local variables for File Loop Container" src="http://zlika.org/wp-content/uploads/2010/06/16.png" alt="" width="600" height="189" /></a><p class="wp-caption-text">Create local variables for File Loop Container</p></div>
<p>I create expressions for Dir_ForUpload_FileName and Dir_Source_FileName variables. When I select the variable, the Properties windows (in the down-right corner of the screen) changes.</p>
<div id="attachment_411" class="wp-caption aligncenter" style="width: 402px"><a href="http://zlika.org/wp-content/uploads/2010/06/18.png" rel="lightbox[254]"><img class="size-full wp-image-411" title="Create expression for variable" src="http://zlika.org/wp-content/uploads/2010/06/18.png" alt="" width="392" height="354" /></a><p class="wp-caption-text">Create expression for variable</p></div>
<p>In the Expression field I write the expresisons:</p>
<p>1. Dir_ForUpload_FileName:</p>
<pre class="brush: vb;">
@[User::Dir_ForUpload]
+ SUBSTRING(@[User::FileName], 1, FINDSTRING(@[User::FileName], &quot;.&quot;, 1) - 1)
+ &quot;_&quot;
+ SUBSTRING((DT_WSTR, 30)GETDATE(), 1, 4)
+ &quot;-&quot;
+ SUBSTRING((DT_WSTR, 30)GETDATE(), 6, 2)
+ &quot;-&quot;
+ SUBSTRING((DT_WSTR ,30)GETDATE(), 9, 2)
+ &quot;_&quot;
+ SUBSTRING((DT_WSTR, 30)GETDATE(), 12, 2)
+ SUBSTRING((DT_WSTR, 30)GETDATE(), 15, 2)
+ SUBSTRING((DT_WSTR, 30)GETDATE(), 18, 2)
+ SUBSTRING(@[User::FileName], FINDSTRING(@[User::FileName], &quot;.&quot;, 1), LEN(@[User::FileName]))
</pre>
<p>2. Dir_Source_FileName:</p>
<pre class="brush: vb;">@[User::Dir_Source] +  @[User::FileName]</pre>
<p>Edit Foreach Loop Container. We mark a folder for loop (C:\Temp\Source\). We loop only the .txt files. In Variable Mappings section we add the FileName variable.</p>
<div id="attachment_344" class="wp-caption aligncenter" style="width: 592px"><a href="http://zlika.org/wp-content/uploads/2010/06/13.png" rel="lightbox[254]"><img class="aligncenter size-full wp-image-344" title="Setting Foreach Loop Container" src="http://zlika.org/wp-content/uploads/2010/06/13.png" alt="" width="582" height="556" /></a><p class="wp-caption-text">Setting Foreach Loop Container</p></div>
<p>Setting File System Task (inside the Foreach Loop Container)</p>
<div id="attachment_408" class="wp-caption aligncenter" style="width: 602px"><a href="http://zlika.org/wp-content/uploads/2010/06/14.png" rel="lightbox[254]"><img class="size-full wp-image-408" title="Setting File System Task" src="http://zlika.org/wp-content/uploads/2010/06/14.png" alt="" width="592" height="556" /></a><p class="wp-caption-text">Setting File System Task</p></div>
<p>FTP upload &#8211; drag the Foreach Loop Container and FTP task in it. I create local variable FileName &#8211; the same as in previous step. In Foreach Loop Editor I choose Foreach File Enumerator, C:\Temp\ForUpload\ in Folder field and *.txt in Files field.</p>
<p>Edit FTP task &#8211; I adjust the local and remote paths</p>
<div id="attachment_410" class="wp-caption aligncenter" style="width: 588px"><a href="http://zlika.org/wp-content/uploads/2010/06/17.png" rel="lightbox[254]"><img class="size-full wp-image-410" title="Setting FTP task" src="http://zlika.org/wp-content/uploads/2010/06/17.png" alt="" width="578" height="541" /></a><p class="wp-caption-text">Setting FTP task</p></div>
<p>The next step is loop for placing the files in Archive folder. I won&#8217;t explain it. It&#8217;s the same as the loop, I used to move and rename from Source to ForUpload folder.</p>
<p>The full schema of the objects looks like this:</p>
<div id="attachment_412" class="wp-caption aligncenter" style="width: 645px"><a href="http://zlika.org/wp-content/uploads/2010/06/19.png" rel="lightbox[254]"><img class="size-full wp-image-412" title="All the objects" src="http://zlika.org/wp-content/uploads/2010/06/19.png" alt="" width="635" height="397" /></a><p class="wp-caption-text">All the objects</p></div>
<p>Next I will implement the package into SSMS, I will create Scheduled Job, which will include operator notification. While executing the Job in real-time working enviroment, I will decide whether to add the Send Mail Task in SSIS package.</p>
<p><a title="Source files" href="http://www.zlika.org/wp-content/uploads/2010/06/Move-and-Rename.zip">Source files</a></p>
<p>Félicitations</p>
<hr size="1" noshade>
<p style="font-family = verdana, tahoma, arial, sans-serif; font-size: 10px;">
<a title="Simple SSIS Project &#8211; export to flat file, FTP upload, archive (create the package)" href="http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/"><b>Simple SSIS Project &#8211; export to flat file, FTP upload, archive (create the package)</b></a> <br />
Author: zlika (Peter Lalovsky), Category: <a href="http://zlika.org/index.php/category/it/" title="View all posts in IT" rel="category tag">IT</a>, <a href="http://zlika.org/index.php/category/it/ms-sql-server/" title="View all posts in MS SQL Server" rel="category tag">MS SQL Server</a>, <a href="http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/#comments">%%comment_text%%</a>

<br />

Add to:
<a title="Share on Delicious" href="http://del.icio.us/post?url=http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/&title=Simple SSIS Project &#8211; export to flat file, FTP upload, archive (create the package)">Delicious</a> | 
<a title="Share on Facebook" href="http://www.facebook.com/sharer.php?u=http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/&t=Simple SSIS Project &#8211; export to flat file, FTP upload, archive (create the package)">Facebook</a> | 
<a title="Share on Twitter" href="http://twitter.com/home?status=Currently reading http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/">Twitter</a> | <a title="Share on Live" href="http://favorites.live.com/quickadd.aspx?url=http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/&title=Simple SSIS Project &#8211; export to flat file, FTP upload, archive (create the package)">Live</a> | 
<a title="Share on Reddit" href="http://reddit.com/submit?url=http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/&title=Simple SSIS Project &#8211; export to flat file, FTP upload, archive (create the package)">Reddit</a> | 
<a title="Share on Technorati" href="http://www.technorati.com/faves?add=http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/">Technorati</a> | 
<a title="Share on Digg" href="http://digg.com/submit?url=http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/&title=Simple SSIS Project &#8211; export to flat file, FTP upload, archive (create the package)">Digg</a>

<br />

Followers: <a href="http://www.technorati.com/search/http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/" title="Linking blogs to this article, on Technorati">Technorati</a> | <a href="http://www.google.com/blogsearch?hl=en&q=http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/" title="Linking blogs to this article, on Google">Google</a>

<br />

© 2010, <a href="http://zlika.org">zlika&#039;s</a> (<a href="http://zlika.org/index.php/feed/">RSS</a>)
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://zlika.org/index.php/2010/06/06/simple-ssis-project-part-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The difference between WHERE and HAVING filters in SQL Server</title>
		<link>http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/</link>
		<comments>http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 02:44:51 +0000</pubDate>
		<dc:creator>zlika</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[Transact-SQL]]></category>
		<category><![CDATA[SSMS]]></category>

		<guid isPermaLink="false">http://zlika.org/?p=367</guid>
		<description><![CDATA[The difference between WHERE and HAVING filters in Transact-SQL queries is that WHERE clause is a filter of all the data, while HAVING filters the GROUP BY data. I&#8217;ve prepared a simple example.


USE zlika
GO

-- Create table
CREATE TABLE test (
	Date DATETIME
	, QTY INT
)
GO

-- Populate table
INSERT INTO test (Date, QTY)
SELECT '2009-05-10', 1
UNION ALL SELECT '2009-05-10', 2
UNION ALL [...]]]></description>
			<content:encoded><![CDATA[<p>The difference between WHERE and HAVING filters in Transact-SQL queries is that WHERE clause is a filter of all the data, while HAVING filters the GROUP BY data. I&#8217;ve prepared a simple example.</p>
<p><span id="more-367"></span></p>
<pre class="brush: sql;">
USE zlika
GO

-- Create table
CREATE TABLE test (
	Date DATETIME
	, QTY INT
)
GO

-- Populate table
INSERT INTO test (Date, QTY)
SELECT '2009-05-10', 1
UNION ALL SELECT '2009-05-10', 2
UNION ALL SELECT '2009-05-10', 3
UNION ALL SELECT '2009-05-11', 4
UNION ALL SELECT '2009-05-11', 5
UNION ALL SELECT '2009-05-11', 6
UNION ALL SELECT '2009-05-12', 7
UNION ALL SELECT '2009-05-12', 8
UNION ALL SELECT '2009-05-12', 9
GO

-- Check the table
SELECT
	CONVERT(CHAR(10), Date, 103) AS Date
	, QTY

FROM
	test
GO
</pre>
<p>The content of the table is as follows:</p>
<div id="attachment_369" class="wp-caption aligncenter" style="width: 189px"><a href="http://zlika.org/wp-content/uploads/2010/04/01.png" rel="lightbox[367]"><img src="http://zlika.org/wp-content/uploads/2010/04/01.png" alt="" title="Content of the table" width="179" height="232" class="size-full wp-image-369" /></a><p class="wp-caption-text">Content of the table</p></div>
<p>If we GROUP BY column QTY, the result is different sums of the QTY column:<br />
May 10, 2009, 1 + 2 + 3 = 6<br />
May 11, 2009, 4 + 5 + 6 = 15<br />
May 12, 2009, 7 + 8 + 9 = 24</p>
<pre class="brush: sql;">
USE zlika
GO

-- GROUP BY (no filters)
SELECT
	CONVERT(CHAR(10), Date, 103) AS Date
	, SUM(QTY) AS QTY

FROM
	test

GROUP BY
	Date
GO
</pre>
<div id="attachment_371" class="wp-caption aligncenter" style="width: 183px"><a href="http://zlika.org/wp-content/uploads/2010/04/02.png" rel="lightbox[367]"><img src="http://zlika.org/wp-content/uploads/2010/04/02.png" alt="" title="GROPU BY filter" width="173" height="112" class="size-full wp-image-371" /></a><p class="wp-caption-text">GROPU BY filter</p></div>
<p>If we exclude the &#8217;6&#8242; in the WHERE clause, it&#8217;s gonna be filtered before the grouping of the date. The line No. 6 will be eliminated and the May 11, 2009 will be grouped like 4 + 5 = 9.</p>
<pre class="brush: sql;">
USE zlika
GO

-- GROUP BY (WHERE filter)
SELECT
	CONVERT(CHAR(10), Date, 103) AS Date
	, SUM(QTY) AS QTY

FROM
	test

WHERE
	QTY &lt;&gt; 6

GROUP BY
	Date
GO
</pre>
<div id="attachment_374" class="wp-caption aligncenter" style="width: 184px"><a href="http://zlika.org/wp-content/uploads/2010/04/03.png" rel="lightbox[367]"><img src="http://zlika.org/wp-content/uploads/2010/04/03.png" alt="" title="WHERE filter" width="174" height="115" class="size-full wp-image-374" /></a><p class="wp-caption-text">WHERE filter</p></div>
<p>If we exclude the &#8217;6&#8242; in the HAVING clause, it&#8217;s gonna be filtered after the grouping of the date. The date that has sum of QTY column = 6 will be eliminated and the date May 10, 2009 will miss.</p>
<pre class="brush: sql;">
USE zlika
GO

-- GROUP BY (HAVING filter)
SELECT
	CONVERT(CHAR(10), Date, 103) AS Date
	, SUM(QTY) AS QTY

FROM
	test

GROUP BY
	Date

HAVING
	SUM(QTY) &lt;&gt; 6
GO
</pre>
<div id="attachment_376" class="wp-caption aligncenter" style="width: 179px"><a href="http://zlika.org/wp-content/uploads/2010/04/04.png" rel="lightbox[367]"><img src="http://zlika.org/wp-content/uploads/2010/04/04.png" alt="" title="HAVING filter" width="169" height="92" class="size-full wp-image-376" /></a><p class="wp-caption-text">HAVING filter</p></div>
<p>Clean up the test table.</p>
<pre class="brush: sql;">
USE zlika
GO

-- Clean up
DROP TABLE test
GO
</pre>
<p>Félicitations</p>
<hr size="1" noshade>
<p style="font-family = verdana, tahoma, arial, sans-serif; font-size: 10px;">
<a title="The difference between WHERE and HAVING filters in SQL Server" href="http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/"><b>The difference between WHERE and HAVING filters in SQL Server</b></a> <br />
Author: zlika (Peter Lalovsky), Category: <a href="http://zlika.org/index.php/category/it/" title="View all posts in IT" rel="category tag">IT</a>, <a href="http://zlika.org/index.php/category/it/ms-sql-server/" title="View all posts in MS SQL Server" rel="category tag">MS SQL Server</a>, <a href="http://zlika.org/index.php/category/it/sql/" title="View all posts in Transact-SQL" rel="category tag">Transact-SQL</a>, <a href="http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/#comments">%%comment_text%%</a>

<br />

Add to:
<a title="Share on Delicious" href="http://del.icio.us/post?url=http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/&title=The difference between WHERE and HAVING filters in SQL Server">Delicious</a> | 
<a title="Share on Facebook" href="http://www.facebook.com/sharer.php?u=http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/&t=The difference between WHERE and HAVING filters in SQL Server">Facebook</a> | 
<a title="Share on Twitter" href="http://twitter.com/home?status=Currently reading http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/">Twitter</a> | <a title="Share on Live" href="http://favorites.live.com/quickadd.aspx?url=http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/&title=The difference between WHERE and HAVING filters in SQL Server">Live</a> | 
<a title="Share on Reddit" href="http://reddit.com/submit?url=http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/&title=The difference between WHERE and HAVING filters in SQL Server">Reddit</a> | 
<a title="Share on Technorati" href="http://www.technorati.com/faves?add=http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/">Technorati</a> | 
<a title="Share on Digg" href="http://digg.com/submit?url=http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/&title=The difference between WHERE and HAVING filters in SQL Server">Digg</a>

<br />

Followers: <a href="http://www.technorati.com/search/http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/" title="Linking blogs to this article, on Technorati">Technorati</a> | <a href="http://www.google.com/blogsearch?hl=en&q=http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/" title="Linking blogs to this article, on Google">Google</a>

<br />

© 2010, <a href="http://zlika.org">zlika&#039;s</a> (<a href="http://zlika.org/index.php/feed/">RSS</a>)
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://zlika.org/index.php/2010/04/26/the-difference-between-where-and-having-filters-in-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MS SQL Server Cursor Example</title>
		<link>http://zlika.org/index.php/2010/03/06/sql-cursor-example/</link>
		<comments>http://zlika.org/index.php/2010/03/06/sql-cursor-example/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 05:35:09 +0000</pubDate>
		<dc:creator>zlika</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[SSMS]]></category>
		<category><![CDATA[Transact-SQL]]></category>

		<guid isPermaLink="false">http://zlika.org/?p=256</guid>
		<description><![CDATA[The cursors in MS SQL Server are not the best way to manipulate the data, because they need more recourse. If you can escape the usage of cursors, do it. OK, the cursors give us a flexible way of manipulating the information. You can imagine a bundle of information, that we use for move through [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Transact-SQL Cursors" href="http://msdn.microsoft.com/en-us/library/ms190028.aspx" target="_blank">The cursors in MS SQL Server</a> are not the best way to manipulate the data, because they need more recourse. If you can escape the usage of cursors, do it. OK, the cursors give us a flexible way of manipulating the information. You can imagine a bundle of information, that we use for move through other information and modify it using the information of our bundle (puting the information in the WHERE clause).</p>
<p><span id="more-256"></span></p>
<p>Let’s say we need to modify a table containing user information. We need to mark those of them, who are registered more than a month (or 30 days) ago. Simultaneously, we need to write in another table only the modified users and the time of modification.</p>
<p>First we create tables, add keys and populate tables.</p>
<pre class="brush: sql;">
USE zlika
GO

-- Create Tables
CREATE TABLE Departments
(
	ID INT NOT NULL
	, DepartmentName VARCHAR(50)
)
GO

CREATE TABLE Person
(
	ID INT IDENTITY
	, FirstName VARCHAR(20)
	, LastName VARCHAR(50)
	, DepartmentID INT
	, RegisteredDate DATETIME
	, CheckStatus BIT
)
GO

CREATE TABLE Checked
(
	PersonID INT
	, CheckDate DATETIME
)
GO

-- Add Keys
ALTER TABLE Departments
ADD CONSTRAINT PK_DepartmentID PRIMARY KEY CLUSTERED
(
	ID ASC
)
GO

ALTER TABLE Person
WITH CHECK ADD CONSTRAINT
FK_Departments_DepartmentID FOREIGN KEY
(
	DepartmentID
)
REFERENCES Departments
(
	ID
)
GO

-- Populate Tables
INSERT INTO Departments (ID, DepartmentName) VALUES
(1, 'IT')
, (2, 'Administration')
, (3, 'Technical Support')
, (4, 'Accounting')
, (5, 'Marketing')
GO

INSERT INTO Person (Firstname, LastName, DepartmentID, RegisteredDate) VALUES
('First', 'Smith', 5, '2010-02-01')
, ('Second', 'Brown', 4, '2010-02-02')
, ('Third', 'Marchal', 3, '2010-02-03')
, ('Fourth', 'Jameson', 2, '2010-02-04')
, ('Fifth', 'Anderson', 1, '2010-02-05')
, ('Sixth', 'Cameron', 1, '2010-02-06')
, ('Seventh', 'Blake', 2, '2010-02-07')
, ('Eight', 'Robert', 3, '2010-02-08')
, ('Ninth', 'Jameson', 4, '2010-02-09')
, ('Tenth', 'Wiliams', 5, '2010-02-10')
GO

-- Preview Tables
SELECT
	*

FROM
	dbo.Person AS P INNER JOIN dbo.Departments AS D
		ON P.DepartmentID = D.ID
GO
</pre>
<div id="attachment_279" class="wp-caption aligncenter" style="width: 658px"><a href="http://zlika.org/wp-content/uploads/2010/03/01.png" rel="lightbox[256]"><img class="size-full wp-image-279" title="Create and populate tables" src="http://zlika.org/wp-content/uploads/2010/03/01.png" alt="" width="648" height="253" /></a><p class="wp-caption-text">Create and populate tables</p></div>
<p>Let&#8217;s say we need to mark only the users of <em>IT</em>, <em>Technical Support</em> and <em>Marketing</em> departments who are registered 28 days ago.</p>
<pre class="brush: sql;">
USE zlika
GO

SELECT
	P.FirstName
	, P.LastName
	, D.DepartmentName
	, CONVERT(CHAR(10), P.RegisteredDate, 103) AS RegisteredDate

FROM
	dbo.Person AS P INNER JOIN dbo.Departments AS D
		ON P.DepartmentID = D.ID
GO
</pre>
<div id="attachment_272" class="wp-caption aligncenter" style="width: 421px"><a href="http://zlika.org/wp-content/uploads/2010/03/02.png" rel="lightbox[256]"><img class="size-full wp-image-272" title="Select all persons" src="http://zlika.org/wp-content/uploads/2010/03/02.png" alt="" width="411" height="254" /></a><p class="wp-caption-text">Select all persons</p></div>
<p>The information that we&#8217;re going to use as filter (in the WHERE clause) is PersonID, RegisteredDate from Person table. That&#8217;s the query that is going to populate the cursor.</p>
<pre class="brush: sql;">
USE zlika
GO

SELECT
	P.ID
	, P.RegisteredDate

FROM
	dbo.Person AS P INNER JOIN dbo.Departments AS D
		ON P.DepartmentID = D.ID

WHERE
	D.DepartmentName IN ('IT', 'Technical Support', 'Marketing')
	AND P.RegisteredDate &lt; DATEDIFF(DAY, 28, GETDATE()) -- 2010-02-06
GO
</pre>
<div id="attachment_285" class="wp-caption aligncenter" style="width: 191px"><a href="http://zlika.org/wp-content/uploads/2010/03/03.png" rel="lightbox[256]"><img class="size-full wp-image-285" title="Populate Cursor Statement" src="http://zlika.org/wp-content/uploads/2010/03/03.png" alt="" width="181" height="111" /></a><p class="wp-caption-text">Populate Cursor Statement</p></div>
<p>The work we need to do is between <em>BEGIN</em> and <em>END</em> keywords. First we mark the status as &#8216;checked&#8217; (1), then we add the PersonID and current date in another table (Checked).</p>
<pre class="brush: sql;">
USE zlika
GO

-- Execute the UPDATE Statement
UPDATE Person
SET CheckStatus = 1
WHERE ID IN (1, 3, 5)

-- Execute the INSERT Statement
INSERT INTO Checked (PersonID, CheckDate) VALUES
(1, GETDATE())
, (3, GETDATE())
, (5, GETDATE())
</pre>
<p>OK, here&#8217;s the guy who do the real work &#8211; the cursor itself. We store the content of the cursor in a variables and we execute the two steps for every row of it. The variables are our filters &#8211; we use them in the WHERE clause.</p>
<pre class="brush: sql;">
USE zlika
GO

-- Declare the variables
DECLARE @PersonID INT
DECLARE @Date DATETIME = DATEDIFF(DAY, 28, GETDATE())

-- Declare the cursor
DECLARE Update_Person_Cursor CURSOR FOR

-- Populate the cursor
SELECT
	P.ID
	, P.RegisteredDate

FROM
	dbo.Person AS P INNER JOIN dbo.Departments AS D
		ON P.DepartmentID = D.ID

WHERE
	D.DepartmentName IN ('IT', 'Technical Support', 'Marketing')
	AND P.RegisteredDate &lt; @Date
	AND P.CheckStatus IS NULL

-- Open the cursor to work with it
OPEN Update_Person_Cursor

-- Select The first row into the variables (@PesronID = 1, @Date = 2010-02-01)
FETCH NEXT FROM Update_Person_Cursor INTO
	@PersonID
	, @Date

-- While there are no more rows in the cursor...
WHILE @@FETCH_STATUS = 0

-- Do the two steps!
BEGIN
	-- Execute the UPDATE statement
	UPDATE Person
	SET CheckStatus = 1
	WHERE ID = @PersonID

	-- Execute the INSERT statement
	INSERT INTO Checked (PersonID, CheckDate) VALUES
	(@PersonID, GETDATE())

	-- Select The second row into the variables (@PesronID = 3, @Date = 2010-02-03)
	FETCH NEXT FROM Update_Person_Cursor INTO
		@PersonID
		, @Date
END

-- Close The cursor
CLOSE Update_Person_Cursor

-- Kill the cursor
DEALLOCATE Update_Person_Cursor
GO
</pre>
<p>The records in the &#8216;Checked&#8217; table are those we needed.</p>
<pre class="brush: sql;">
USE zlika
GO

SELECT * FROM Checked
</pre>
<div id="attachment_292" class="wp-caption aligncenter" style="width: 295px"><a href="http://zlika.org/wp-content/uploads/2010/03/04.png" rel="lightbox[256]"><img class="size-full wp-image-292" title="Content of 'Checked' table" src="http://zlika.org/wp-content/uploads/2010/03/04.png" alt="" width="285" height="110" /></a><p class="wp-caption-text">Content of &#39;Checked&#39; table</p></div>
<p>&#8230;and the status in the &#8216;Person&#8217; table is changed to &#8217;1&#8242;.</p>
<pre class="brush: sql;">
USE zlika
GO

SELECT
	*

FROM
	dbo.Person AS P INNER JOIN dbo.Departments AS D
		ON P.DepartmentID = D.ID
GO
</pre>
<div id="attachment_296" class="wp-caption aligncenter" style="width: 657px"><a href="http://zlika.org/wp-content/uploads/2010/03/05.png" rel="lightbox[256]"><img class="size-full wp-image-296" title="The content of 'Person' table" src="http://zlika.org/wp-content/uploads/2010/03/05.png" alt="" width="647" height="252" /></a><p class="wp-caption-text">The content of &#39;Person&#39; table</p></div>
<p>Félicitations</p>
<hr size="1" noshade>
<p style="font-family = verdana, tahoma, arial, sans-serif; font-size: 10px;">
<a title="MS SQL Server Cursor Example" href="http://zlika.org/index.php/2010/03/06/sql-cursor-example/"><b>MS SQL Server Cursor Example</b></a> <br />
Author: zlika (Peter Lalovsky), Category: <a href="http://zlika.org/index.php/category/it/" title="View all posts in IT" rel="category tag">IT</a>, <a href="http://zlika.org/index.php/category/it/ms-sql-server/" title="View all posts in MS SQL Server" rel="category tag">MS SQL Server</a>, <a href="http://zlika.org/index.php/2010/03/06/sql-cursor-example/#comments">%%comment_text%%</a>

<br />

Add to:
<a title="Share on Delicious" href="http://del.icio.us/post?url=http://zlika.org/index.php/2010/03/06/sql-cursor-example/&title=MS SQL Server Cursor Example">Delicious</a> | 
<a title="Share on Facebook" href="http://www.facebook.com/sharer.php?u=http://zlika.org/index.php/2010/03/06/sql-cursor-example/&t=MS SQL Server Cursor Example">Facebook</a> | 
<a title="Share on Twitter" href="http://twitter.com/home?status=Currently reading http://zlika.org/index.php/2010/03/06/sql-cursor-example/">Twitter</a> | <a title="Share on Live" href="http://favorites.live.com/quickadd.aspx?url=http://zlika.org/index.php/2010/03/06/sql-cursor-example/&title=MS SQL Server Cursor Example">Live</a> | 
<a title="Share on Reddit" href="http://reddit.com/submit?url=http://zlika.org/index.php/2010/03/06/sql-cursor-example/&title=MS SQL Server Cursor Example">Reddit</a> | 
<a title="Share on Technorati" href="http://www.technorati.com/faves?add=http://zlika.org/index.php/2010/03/06/sql-cursor-example/">Technorati</a> | 
<a title="Share on Digg" href="http://digg.com/submit?url=http://zlika.org/index.php/2010/03/06/sql-cursor-example/&title=MS SQL Server Cursor Example">Digg</a>

<br />

Followers: <a href="http://www.technorati.com/search/http://zlika.org/index.php/2010/03/06/sql-cursor-example/" title="Linking blogs to this article, on Technorati">Technorati</a> | <a href="http://www.google.com/blogsearch?hl=en&q=http://zlika.org/index.php/2010/03/06/sql-cursor-example/" title="Linking blogs to this article, on Google">Google</a>

<br />

© 2010, <a href="http://zlika.org">zlika&#039;s</a> (<a href="http://zlika.org/index.php/feed/">RSS</a>)
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://zlika.org/index.php/2010/03/06/sql-cursor-example/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Generate filename (Name_Date_Time.txt) for a report with Transact-SQL in Microsoft SQL Server</title>
		<link>http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/</link>
		<comments>http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 03:18:58 +0000</pubDate>
		<dc:creator>zlika</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[Transact-SQL]]></category>

		<guid isPermaLink="false">http://zlika.org/?p=227</guid>
		<description><![CDATA[My ex-colleague asked me how to insert query result in a variable for generate report in Microsoft SQL Server. After few explanations I noticed that she has decided to use SSIS (SQL Server Integration Services) to automate. She sent me an example in which she uses YEAR(), MONTH() and DAY() functions.

-- YEAR(), MONTH(), DAY()
SELECT
	'Test_'
	+ CAST(YEAR(GETDATE()) AS CHAR(4))
	+ '-'
	+ [...]]]></description>
			<content:encoded><![CDATA[<p>My ex-colleague asked me how to insert query result in a variable for generate report in Microsoft SQL Server. After few explanations I noticed that she has decided to use SSIS (<a title="SQL Server Integration Services" href="http://msdn.microsoft.com/en-us/library/ms141026.aspx" target="_blank">SQL Server Integration Services</a>) to automate. She sent me an example in which she uses YEAR(), MONTH() and DAY() functions.</p>
<p><span id="more-227"></span></p>
<pre class="brush: sql;">-- YEAR(), MONTH(), DAY()
SELECT
	'Test_'
	+ CAST(YEAR(GETDATE()) AS CHAR(4))
	+ '-'
	+ CAST(MONTH(GETDATE()) AS CHAR(2))
	+ '-'
	+ CAST(DAY(GETDATE()) AS CHAR(2))
	+ '.txt' AS DynamicFileName
GO</pre>
<p><strong>Result</strong><a href="http://zlika.org/wp-content/uploads/2010/02/YEAR_MONTH_DAY.png" rel="lightbox[227]"><br />
</a><a href="http://zlika.org/wp-content/uploads/2010/02/YEAR_MONTH_DAY.png" rel="lightbox[227]"><img class="size-full wp-image-233" title="YEAR(), MONTH(), DAY()" src="http://zlika.org/wp-content/uploads/2010/02/YEAR_MONTH_DAY.png" alt="YEAR(), MONTH(), DAY()" /></a></p>
<p>The result is strange, because <a title="MS SQL Server 2008 - Books Online" href="http://msdn.microsoft.com/en-us/library/ms186724.aspx#DateandTimeFunctions" target="_blank">the return data type of those functions is integer</a>. To fix this, we need to add leading zeros in front of days, months, hours, minutes and seconds.</p>
<pre class="brush: sql;">-- Add leading zeroes
DECLARE
	@Day AS CHAR(2)
	, @Month AS CHAR(2)
	, @Year AS CHAR(4)
	, @Hour AS CHAR(2)
	, @Minute AS CHAR(2)
	, @Second AS CHAR (2)
	, @NewFileName AS CHAR(26)

SELECT @Day = DATEPART(DD, GETDATE())
SELECT @Day = RIGHT('0', 2 - LEN(@Day)) + @Day

SELECT @Month = DATEPART(MM, GETDATE())
SELECT @Month = RIGHT('0', 2 - LEN(@Month)) + @Month

SELECT @Year = DATEPART (YY, GETDATE())

SELECT @Hour = DATEPART(HH, GETDATE())
SELECT @Hour = RIGHT('0', 2 - LEN (@Hour)) + @Hour

SELECT @Minute = DATENAME(MI, GETDATE())
SELECT @Minute = RIGHT('0', 2 - LEN (@Minute)) + @Minute

SELECT @Second = DATEPART(SS, GETDATE())
SELECT @Second = RIGHT('0', 2 - LEN (@Second)) + @Second

SELECT @NewFileName = 'Test_' + @Year + '-' + @Month + '-' + @Day + '_' + @Hour + @Minute + @Second + '.txt'

SELECT @NewFileName AS DynamicFileName
GO</pre>
<p><strong>Result</strong><br />
<a href="http://zlika.org/wp-content/uploads/2010/02/AddLeadingZeros.png" rel="lightbox[227]"><img class="size-full wp-image-233" title="AddLeadingZeros" src="http://zlika.org/wp-content/uploads/2010/02/AddLeadingZeros.png" alt="Add leading zeros" /></a></p>
<p>The best way is to convert the result of GETDATE() function to CHAR and extract the different parts of it with the SUBSTRING() function.</p>
<pre class="brush: sql;">-- SUBSTRING()
DECLARE
	@Date CHAR(20) = CONVERT(CHAR(10), GETDATE(), 112) -- yyyymmdd
	, @Time CHAR(20) = CONVERT(CHAR(10), GETDATE(), 108) -- hh:mi:ss

SELECT
	'Test_'
	+ SUBSTRING(@Date, 1, 4) -- Year
	+ '-'
	+ SUBSTRING(@Date, 5, 2) -- Month
	+ '-'
	+ SUBSTRING(@Date, 7, 2) -- Day
	+ '_'
	+ SUBSTRING(@Time, 1, 2) -- Hour
	+ SUBSTRING(@Time, 4, 2) -- Minute
	+ SUBSTRING(@Time, 7, 2) -- Second
	+ '.txt' AS DynamicFileName
GO</pre>
<p><strong>Result</strong><br />
<a href="http://zlika.org/wp-content/uploads/2010/02/SUBSTRING.png" rel="lightbox[227]"><img class="size-full wp-image-234" title="SUBSTRING" src="http://zlika.org/wp-content/uploads/2010/02/SUBSTRING.png" alt="SUBSTRING()" /></a></p>
<p>My ex-colleague needs the dynamic filename to generate reports with SSIS. I&#8217;m gonna show her soon how to create simple project and the way for the same manipulation of the date in SSIS.</p>
<p>Félicitations</p>
<hr size="1" noshade>
<p style="font-family = verdana, tahoma, arial, sans-serif; font-size: 10px;">
<a title="Generate filename (Name_Date_Time.txt) for a report with Transact-SQL in Microsoft SQL Server" href="http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/"><b>Generate filename (Name_Date_Time.txt) for a report with Transact-SQL in Microsoft SQL Server</b></a> <br />
Author: zlika (Peter Lalovsky), Category: <a href="http://zlika.org/index.php/category/it/" title="View all posts in IT" rel="category tag">IT</a>, <a href="http://zlika.org/index.php/category/it/ms-sql-server/" title="View all posts in MS SQL Server" rel="category tag">MS SQL Server</a>, <a href="http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/#comments">%%comment_text%%</a>

<br />

Add to:
<a title="Share on Delicious" href="http://del.icio.us/post?url=http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/&title=Generate filename (Name_Date_Time.txt) for a report with Transact-SQL in Microsoft SQL Server">Delicious</a> | 
<a title="Share on Facebook" href="http://www.facebook.com/sharer.php?u=http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/&t=Generate filename (Name_Date_Time.txt) for a report with Transact-SQL in Microsoft SQL Server">Facebook</a> | 
<a title="Share on Twitter" href="http://twitter.com/home?status=Currently reading http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/">Twitter</a> | <a title="Share on Live" href="http://favorites.live.com/quickadd.aspx?url=http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/&title=Generate filename (Name_Date_Time.txt) for a report with Transact-SQL in Microsoft SQL Server">Live</a> | 
<a title="Share on Reddit" href="http://reddit.com/submit?url=http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/&title=Generate filename (Name_Date_Time.txt) for a report with Transact-SQL in Microsoft SQL Server">Reddit</a> | 
<a title="Share on Technorati" href="http://www.technorati.com/faves?add=http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/">Technorati</a> | 
<a title="Share on Digg" href="http://digg.com/submit?url=http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/&title=Generate filename (Name_Date_Time.txt) for a report with Transact-SQL in Microsoft SQL Server">Digg</a>

<br />

Followers: <a href="http://www.technorati.com/search/http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/" title="Linking blogs to this article, on Technorati">Technorati</a> | <a href="http://www.google.com/blogsearch?hl=en&q=http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/" title="Linking blogs to this article, on Google">Google</a>

<br />

© 2010, <a href="http://zlika.org">zlika&#039;s</a> (<a href="http://zlika.org/index.php/feed/">RSS</a>)
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://zlika.org/index.php/2010/02/28/generate-filename-name_date_time-txt-for-a-report-with-transact-sql-in-microsoft-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

