Click here to Skip to main content
15,896,493 members
Articles / Database Development / SQL Server

SQL Server 2000 Collation Changer

Rate me:
Please Sign up or sign in to vote.
4.88/5 (99 votes)
3 Mar 2008CPOL4 min read 640.2K   10.1K   101  
Change collation order for all text columns in a database

--drop indexes
insert into #sql(sql)
select	case when is_primary_key=1 OR is_unique_constraint=1
		then 
			'ALTER TABLE ['+SCHEMA_NAME(o.schema_id)+'].['+o.name +'] DROP CONSTRAINT [' + i.name +']'
		else 
			'DROP INDEX [' + i.name +'] ON ['+SCHEMA_NAME(o.schema_id)+'].['+o.name +']' end
from	sys.indexes i
join	sys.objects o
on		i.object_id = o.object_id
where	(exists (
				--find any columns that have a collation specified
				select	1
				from	sys.index_columns ic
				join	sys.columns c
				on		ic.object_id = c.object_id
				and		ic.column_id = c.column_id
				where	collation_name is not null 
				and		c.object_id = i.object_id
				and		ic.index_id = i.index_id) 
				--{2} is the rebuild indexes option from application
				OR {2} = 1)
and		o.is_ms_shipped = 0
and		i.type <> 0 --dont care about heaps


By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer RXP Services
Australia Australia
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions