<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
	
	>
<channel>
	<title>
	Comments on: Check the settings when installing SQL Server	</title>
	<atom:link href="https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/</link>
	<description></description>
	<lastBuildDate>Thu, 13 Aug 2015 07:23:57 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>
	<item>
		<title>
		By: Rob Farley		</title>
		<link>https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/#comment-2679</link>

		<dc:creator><![CDATA[Rob Farley]]></dc:creator>
		<pubDate>Thu, 13 Aug 2015 07:23:57 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3475#comment-2679</guid>

					<description><![CDATA[Yes, Trevor, and I really wish they had&#039;ve developed the &#034;contained database&#034; concept more.]]></description>
			<content:encoded><![CDATA[<p>Yes, Trevor, and I really wish they had&#8217;ve developed the &quot;contained database&quot; concept more.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Trevor		</title>
		<link>https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/#comment-2678</link>

		<dc:creator><![CDATA[Trevor]]></dc:creator>
		<pubDate>Thu, 13 Aug 2015 07:01:49 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3475#comment-2678</guid>

					<description><![CDATA[I&#039;m sure you&#039;re already aware, but it&#039;s worth noting that this behaviour changes when you use a DB that is set for partial containment. Once set it defaults to creating temporary tables in the database default collation. 
So while the primary reason for containment is security, and it&#039;s a sledgehammer approach to contain a DB for this reason the option is there.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure you&#8217;re already aware, but it&#8217;s worth noting that this behaviour changes when you use a DB that is set for partial containment. Once set it defaults to creating temporary tables in the database default collation.<br />
So while the primary reason for containment is security, and it&#8217;s a sledgehammer approach to contain a DB for this reason the option is there.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rob Farley		</title>
		<link>https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/#comment-2677</link>

		<dc:creator><![CDATA[Rob Farley]]></dc:creator>
		<pubDate>Mon, 27 Jul 2015 04:32:49 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3475#comment-2677</guid>

					<description><![CDATA[Yes, I agree with that aspect too. But that connect item is not just about tempdb, but anywhere that collation errors occur. System tables use the default instance collation, and we should take care to avoid errors when dealing with them too.]]></description>
			<content:encoded><![CDATA[<p>Yes, I agree with that aspect too. But that connect item is not just about tempdb, but anywhere that collation errors occur. System tables use the default instance collation, and we should take care to avoid errors when dealing with them too.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Marcel		</title>
		<link>https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/#comment-2676</link>

		<dc:creator><![CDATA[Marcel]]></dc:creator>
		<pubDate>Mon, 27 Jul 2015 03:38:55 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3475#comment-2676</guid>

					<description><![CDATA[&#034;The real problem is that temp tables have tempdb collation. That is never useful. They should have the collation of the database that creates the table.&#034;
Agree with Mark here. The default behaviour should work for the 99% of cases. If I ship an enterprise produce internationally, the first problem encountered is restoring our base db onto a server with a different collation. When the customer supplies the db server, this is always a problem (in our case this is 100% of the time). The default collation for them is directly dependent on their machine locale. They have other systems on their db servers. Our application operation is directly dependent on the collation we have built our app upon and regression tested against. Having to specify database_default everywhere is poor design.]]></description>
			<content:encoded><![CDATA[<p>&quot;The real problem is that temp tables have tempdb collation. That is never useful. They should have the collation of the database that creates the table.&quot;<br />
Agree with Mark here. The default behaviour should work for the 99% of cases. If I ship an enterprise produce internationally, the first problem encountered is restoring our base db onto a server with a different collation. When the customer supplies the db server, this is always a problem (in our case this is 100% of the time). The default collation for them is directly dependent on their machine locale. They have other systems on their db servers. Our application operation is directly dependent on the collation we have built our app upon and regression tested against. Having to specify database_default everywhere is poor design.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rob Farley		</title>
		<link>https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/#comment-2675</link>

		<dc:creator><![CDATA[Rob Farley]]></dc:creator>
		<pubDate>Wed, 15 Jul 2015 03:28:45 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3475#comment-2675</guid>

					<description><![CDATA[All code that created columns without an explicit collation is dependent on database settings already. My suggestion in the Connect item was to have a way of avoiding the error, and a few different options were provided. And the real fix is to have people always specify the collation explicitly, so that even the database collation isn&#039;t relevant, let alone the tempdb collation.]]></description>
			<content:encoded><![CDATA[<p>All code that created columns without an explicit collation is dependent on database settings already. My suggestion in the Connect item was to have a way of avoiding the error, and a few different options were provided. And the real fix is to have people always specify the collation explicitly, so that even the database collation isn&#8217;t relevant, let alone the tempdb collation.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: mark		</title>
		<link>https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/#comment-2674</link>

		<dc:creator><![CDATA[mark]]></dc:creator>
		<pubDate>Tue, 14 Jul 2015 17:28:35 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3475#comment-2674</guid>

					<description><![CDATA[It also will increase the amount of code that runs but has wrong results and the amount of code that depends and requires a certain database setting. In fact what if you want to run different pieces of code with different settings? Often a database hosts multiple apps or clients.
One nasty aspect I did not mention before. The ticket breaks the fact that (a=b) is identical to (b=a).
Again, the real fix is to not make temp tables depend on internals of tempdb. We have a clean fix, there is no need to add bad language design.]]></description>
			<content:encoded><![CDATA[<p>It also will increase the amount of code that runs but has wrong results and the amount of code that depends and requires a certain database setting. In fact what if you want to run different pieces of code with different settings? Often a database hosts multiple apps or clients.<br />
One nasty aspect I did not mention before. The ticket breaks the fact that (a=b) is identical to (b=a).<br />
Again, the real fix is to not make temp tables depend on internals of tempdb. We have a clean fix, there is no need to add bad language design.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rob Farley		</title>
		<link>https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/#comment-2673</link>

		<dc:creator><![CDATA[Rob Farley]]></dc:creator>
		<pubDate>Tue, 14 Jul 2015 17:03:06 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3475#comment-2673</guid>

					<description><![CDATA[You already can&#039;t execute code and just assume it&#039;s going to work. A different collation is a common cause of that. The Connect item is trying to increase the amount of code that will simply work, although of course indexing strategies need to consider the collation settings carefully.]]></description>
			<content:encoded><![CDATA[<p>You already can&#8217;t execute code and just assume it&#8217;s going to work. A different collation is a common cause of that. The Connect item is trying to increase the amount of code that will simply work, although of course indexing strategies need to consider the collation settings carefully.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: mark		</title>
		<link>https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/#comment-2672</link>

		<dc:creator><![CDATA[mark]]></dc:creator>
		<pubDate>Tue, 14 Jul 2015 16:26:36 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3475#comment-2672</guid>

					<description><![CDATA[I did not realize it was your item. I should have elaborated: Settings that influence the valid T-SQL that you can write or its behavior are evil because it&#039;s a trap waiting to hit. You can no longer use code on the web or publish code to the web because you might accidentally depend on some setting. That&#039;s why the ANSI NULL setting is deprecated although it clearly makes the language better. Bad language design.
It&#039;s action from a distance. It breaks stuff without you being able to audit for it.
This is like the VB language options which I&#039;m sure the team regrets.
Also, this is a little like ON ERROR RESUME NEXT.]]></description>
			<content:encoded><![CDATA[<p>I did not realize it was your item. I should have elaborated: Settings that influence the valid T-SQL that you can write or its behavior are evil because it&#8217;s a trap waiting to hit. You can no longer use code on the web or publish code to the web because you might accidentally depend on some setting. That&#8217;s why the ANSI NULL setting is deprecated although it clearly makes the language better. Bad language design.<br />
It&#8217;s action from a distance. It breaks stuff without you being able to audit for it.<br />
This is like the VB language options which I&#8217;m sure the team regrets.<br />
Also, this is a little like ON ERROR RESUME NEXT.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rob Farley		</title>
		<link>https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/#comment-2671</link>

		<dc:creator><![CDATA[Rob Farley]]></dc:creator>
		<pubDate>Tue, 14 Jul 2015 15:59:28 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3475#comment-2671</guid>

					<description><![CDATA[I&#039;m sorry you don&#039;t like the Connect item, Mark. The point of the Connect item is to have an option that means that a collation error can resolve with a warning.
There is no issue specifying a collation when creating a temporary table, and DATABASE_DEFAULT is better than nothing.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sorry you don&#8217;t like the Connect item, Mark. The point of the Connect item is to have an option that means that a collation error can resolve with a warning.<br />
There is no issue specifying a collation when creating a temporary table, and DATABASE_DEFAULT is better than nothing.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: mark		</title>
		<link>https://lobsterpot.com.au/blog/2015/07/14/check-the-settings-when-installing-sql-server/#comment-2670</link>

		<dc:creator><![CDATA[mark]]></dc:creator>
		<pubDate>Tue, 14 Jul 2015 15:03:19 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.lobsterpot.com.au/?p=3475#comment-2670</guid>

					<description><![CDATA[That connect proposal is really horrible. What bad language design.
The real problem is that temp tables have tempdb collation. That is never useful. They should have the collation of the database that creates the table. This behavior is so bad and broken that it borders on a bug.
It certainly is *not* best practice to specify COLLATE DATABASE_DEFAULT on all temp tables. It clutters the code. This should be done if necessary. The better solution is to ensure that all databases have the same sane collation. If that is not possible you might need COLLATE DATABASE_DEFAULT.]]></description>
			<content:encoded><![CDATA[<p>That connect proposal is really horrible. What bad language design.<br />
The real problem is that temp tables have tempdb collation. That is never useful. They should have the collation of the database that creates the table. This behavior is so bad and broken that it borders on a bug.<br />
It certainly is *not* best practice to specify COLLATE DATABASE_DEFAULT on all temp tables. It clutters the code. This should be done if necessary. The better solution is to ensure that all databases have the same sane collation. If that is not possible you might need COLLATE DATABASE_DEFAULT.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
