Changing database collation for existing databases

Hi,

We are upgrading from SQL2000 to SQL2008R2. We are taking the
opportunity to update the collation on our databases.

Sorry to bring this up again but there are a lot of partial answers
online and a lot of conflicting information. Our situation is that we
have a database with NO COLLATE clauses, i.e. all columns use the
database default (temp tables excepted).

The only Microsoft knowledge base article on this seems to be from 7.0
and 2000. I wonder if the same comments still apply.
http://support.microsoft.com/kb/325335

So which is the best method (i.e. the simplest/fastest 100% correct
method) for updating the database collation and all data, given the
above details? The old collation is SQL_Latin1_General_CP1_CI_AS and
the new one will be Latin1_General_CI_AS.

As far as I can work out the options are:
1) A dynamic script that uses ALTER TABLE ALTER COLUMN statements on
an inplace database.
2) Create a new db with the correct collation - use SSIS to import
data and schemas.
3) Use SQL Compare.

Any advice very welcome.

Cheers,

James
0
JimLad
8/11/2010 1:29:34 PM
sqlserver.server 1327 articles. 0 followers. Follow

3 Replies
1789 Views

Similar Articles

[PageSpeed] 18

JimLad (jamesdbirch@yahoo.co.uk) writes:
> As far as I can work out the options are:
> 1) A dynamic script that uses ALTER TABLE ALTER COLUMN statements on
> an inplace database.

Which is more difficult than it sounds, because indexes, foreign keys and 
constraints must be dropped. I think did this once, but that was a migration
database with no FKs.

> 2) Create a new db with the correct collation - use SSIS to import
> data and schemas.

This is what have done. Although we have all our scripts on version control,
so we don't have to rely on scripting. And we did not use SSIS, but we
use BCP for the task. (We also already had the tools for this.)

Whether you actually can do this with SSIS I don't know. You don't want
it to copy the collation of the source database...

I would say that if you don't have any textual source for your database, 
that is the first thing you should address.

-- 
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se

Links for SQL Server Books Online:
SQL 2008: http://msdn.microsoft.com/en-us/sqlserver/cc514207.aspx
SQL 2005: http://msdn.microsoft.com/en-us/sqlserver/bb895970.aspx
SQL 2000: http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx

0
Erland
8/11/2010 9:13:10 PM
On 11 Aug, 22:13, Erland Sommarskog <esq...@sommarskog.se> wrote:
> JimLad (jamesdbi...@yahoo.co.uk) writes:
> > As far as I can work out the options are:
> > 1) A dynamic script that uses ALTER TABLE ALTER COLUMN statements on
> > an inplace database.
>
> Which is more difficult than it sounds, because indexes, foreign keys and
> constraints must be dropped. I think did this once, but that was a migration
> database with no FKs.
>
> > 2) Create a new db with the correct collation - use SSIS to import
> > data and schemas.
>
> This is what have done. Although we have all our scripts on version control,
> so we don't have to rely on scripting. And we did not use SSIS, but we
> use BCP for the task. (We also already had the tools for this.)
>
> Whether you actually can do this with SSIS I don't know. You don't want
> it to copy the collation of the source database...
>
> I would say that if you don't have any textual source for your database,
> that is the first thing you should address.
>
> --
> Erland Sommarskog, SQL Server MVP, esq...@sommarskog.se
>
> Links for SQL Server Books Online:
> SQL 2008:http://msdn.microsoft.com/en-us/sqlserver/cc514207.aspx
> SQL 2005:http://msdn.microsoft.com/en-us/sqlserver/bb895970.aspx
> SQL 2000:http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx

Thanks Erland.

SSIS Task 'Transfer SQL Server Objects Task' does NOT allow collation
change. The 'Use Collation' option just prevents data loss if the
source and target columns have different collations. If you copy the
schema as well as the data it will use the original collation.

So the standard option is to script everything out without collations,
run script on a new database with the new collation and then import
the data using bcp/SSIS etc. This leads to problems with old
unparseable or unexecutable stored procedures and old orphaned user
accounts, so some data cleanup may be required.

I have come across some script online that just changes the character
columns' collation using ALTER TABLE statement while dropping and
recreating all dependencies.
http://blog.sqlauthority.com/2009/10/19/sql-server-change-collation-of-database-column-t-sql-script-consolidating-collations-extention-script/

Assuming this works (from MVP blog, but will be testing!), I just
wanted to check whether there was any possiblility of data loss when
using the ALTER TABLE statement to change collation on a populated
column from sql_latin1_general_cp1_ci_as to latin1_general_ci_as?

Cheers,

James
0
JimLad
8/17/2010 2:35:20 PM
JimLad (jamesdbirch@yahoo.co.uk) writes:
> So the standard option is to script everything out without collations,
> run script on a new database with the new collation and then import
> the data using bcp/SSIS etc. This leads to problems with old
> unparseable or unexecutable stored procedures and old orphaned user
> accounts, so some data cleanup may be required.

Well, if you only have the source code in binary form, and disassemble
it when you need it, you may run into trouble. Keep your code under
version control, or at least on disk.
 
> Assuming this works (from MVP blog, but will be testing!), I just
> wanted to check whether there was any possiblility of data loss when
> using the ALTER TABLE statement to change collation on a populated
> column from sql_latin1_general_cp1_ci_as to latin1_general_ci_as?
 
Depends. If you only use nvarchar, there is no problem. If you use
varchar, and your data includes character that is not in the varchar
repertoir in the new collation, that character will have to replaced
with a fallback. Now, since both collations in this case are based on
the same ANSI code page, this is not very likely, but I don't know all
characters on the top of my head. 

You will find that ALTER TABLE also requires you to drop indexes, 
constrinats etc, so there is a lot of issues there as well.

-- 
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se

Links for SQL Server Books Online:
SQL 2008: http://msdn.microsoft.com/en-us/sqlserver/cc514207.aspx
SQL 2005: http://msdn.microsoft.com/en-us/sqlserver/bb895970.aspx
SQL 2000: http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx

0
Erland
8/17/2010 7:10:58 PM
Reply:

Similar Artilces:

External data link change
Hi, I've a sheet linked to an external data on the net, and I would like that a cell in this sheet to indicate the last date and time it was updated, the simplest way the better but I can do some programming too. Thanks for your attention, -- Domingos Junqueira No need of help any more, I solved the question. Thanks again ...

Why does the change change to a number?
Hi all, I've noticed something wierd and always wondered WHY it happens. When you type a date into a cell, and then change the Formatting of it to a 'general' cell, it turns into a number. How does it come up with that number? What is the significance? i.e. type today's date of "12/7/2007" - change it to a 'General' format, and it then says "39423". I'm a trainer of Excel and this question always comes up. I'm curious myself too. Thanks! Joe It's the number of days since January zero 1900 using Excel default for windows (M...

changing the way Excel displays selected cells
Is there a way to change the way Excel displays selected cells? I'm interested in viewing all the selected cells highlighted (with light blue for instance), but by default excel highlights all the cells but not the first one the same occurs when you define a range with no adyacents cells Your definition of the display is not quite correct. Excel highlights the current cell, Excel also highlights a selecte range. The currently selected cell is generally the first of a range, bu press enter and the current cell changes and becomes the second, the third etc in the range. You cannot...

DST changes for Exchange 5.5
I noticed the 2007 DST Calendar Update "Exchange tool" is available now: http://support.microsoft.com/kb/930879 This will seemingly take care of calendars for mailboxes still on Exchange 5.5 servers, as Exchange 5.5 is listed as "compatible" . However would this address the CDO issues such as BlackBerry users and OWA users still on Exchange 5.5 ? Thanks in advance, Itrcb4 On Mon, 12 Feb 2007 14:31:00 -0800, itrcb4 <itrcb4@discussions.microsoft.com> wrote: >I noticed the 2007 DST Calendar Update "Exchange tool" is available now: > >http://su...

Track Changes
How do i remove the track changes in outlook? When i press "Enter", a symbol that represents "Enter" will appears. Same for space etc. ...

more on VBA function name change
I thought I'd start a new thread since I haven't received any replies to my first one... To recap: I've declared a function in a module using mixed case: Function TMDE_Category (FormName As Form) I noticed recently that it appeared in the module as Function tmde_category(FormName As Form) I changed it back to the mixed case declaration, saved the module, exited the app, reopened it and looked. The function had changed back to the all lowercase declaration. Things I've tried since the original post: Using the databse documenter, I selected all ob...

Can't Publish changes with Deploy Manager
After a migration process, I can't publish the changes made on CRM. When I try do this in Deploy Manager I get the follow error: ---------------------------------------------------------------------------- ----- Publish done with errors. See the event log to get deitails NETRA-INOVACAO: ***Error*** Failed to download XSL template files from Web Server ---------------------------------------------------------------------------- ----- Can somebody help me? I don't know if the migration process have any relationship with the error. Thank you for pay attention. []'s Vin�cius Pitta...

How to change icon for my application
Hi, I am currently developing an application on visual studio 6.0, and i wish to change the MFC icon on my application header. Anyone can help? Thank you. Raed Sawalha wrote: > Hi, I am currently developing an application on visual studio 6.0, and i > wish to change the MFC icon on my application header. Anyone can help? Thank > you. > > Open the icon resource for editing by double clicking. Then notice the control just above the editing grid that lets you switch between editing the large icon and editing the small one. -- Scott McPhillips [VC++ MVP] thanx that work...

How to change newsgroup message font
Like many other ribbon based programs I sometimes struggle to find how to make a change. This time its how to change the font just for newsgroup messages? regards "nobody" wrote in message news:EWTao.39493$GF5.7129@hurricane... > Like many other ribbon based programs I sometimes struggle to find how to make a change. This time its how to change the font just for newsgroup messages? Newsgroup messages are usually plain text. The font used is that selected at [no name tab] > Options > Mail > Read > Fonts for the encoding specified for the messag...

cannot open a non-existent .pst folder
There is a folder listed in Outlook without a name next to it. I cannot open the folder and I cannot delete or close the folder. If I try to execute any command, I get a message stating that I cannot open the .pst that has my calendar, contacts, etc... There is not an option to look at the properties of the folder. I have tried to search for the .pst in docs and settings, to no avail. I have removed the outlook 2003 profile, and then added it, but the folder comes back. I have uninstalled outlook 2003, reinstalled outlook 2003 and the folder is still there. All service packs ...

Notify change of email address when changing ISP
How do I notify my entire address book of an email address when I change ISP's? Thanks By sending a mail to everyone ? If you do so, please use BCC for the adresses, this way you won't spread everybody's e-mail adres to everybody. Niels Bob Baker wrote: > How do I notify my entire address book of an email address when I change ISP's? > Thanks ...

Change a formula to an acual number
I want to change the formula I have created to the number it has created Example: Cell A1 is the number 1. Cell A2 is the formula =a1+1 creatin the number 2. I want this to be a two not a formula. Any ideas? Laura, copy, then paste special, valves -- Paul B Always backup your data before trying something new Please post any response to the newsgroups so others can benefit from it Feedback on answers is always appreciated! Using Excel 2000 & 97 ** remove news from my email address to reply by email ** "Laura" <anonymous@discussions.microsoft.com> wrote in message news...

Problem Changing an Investment Name
I am trying to change an investment name and Money 2006 tells me "The name or symbol 'TRP Spectrum Income' has already been used for a deleted investment. Please enter a different name." When I go to delete investments the name does not appear! Any ideas on how I get Money to accept the name change? This is the first time I have run into this situation and I have made numerous name changes in Money over the years. In microsoft.public.money, Ken wrote: >I am trying to change an investment name and Money 2006 tells me "The name >or symbol 'TRP Spec...

Should I change this code?
Should I change 556 to 560???..............Thanks for your help..........Bob Private Sub Command560_Click() On Error GoTo Err_Command556_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "frmClientInfomation" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Command556_Click: Exit Sub Err_Command556_Click: MsgBox Err.Description Resume Exit_Command556_Click End Sub On Sun, 15 Jul 2007 16:37:26 +1200, "Bob V" <rjvance@ihug.co.nz> wrote: > >Should I change 556 to 560???..............Thanks for your help.....

How to change default font in Outlook 2003
Can someone tell me how to change tthe default font in Outlook 2003 when composing a new email. It always comes up as Times New Roman. I remember somewhere that I specified that Outlook should use Word as the text editor and that seems to be the case. I have Arial as my default font in Word but this seems to make no difference when using Outlook. Hi, Please go to Tools > Setting > Mail Format > Stationery and Fonts > Fonts It's right there :) On 20 Nov 2005 06:28:45 -0800, amarsarit@gmail.com wrote: >Hi, >Please go to Tools > Setting > Mail Format > Statione...

icon changes with change of extension
when we change the extension of a file in windows, its icon also changes..... how does windows do tht. in my application i require a similar approach. i want the icon to be dependent on the file extension not on the attributes of the file. i have gone trough the registry but things are not very clear. Windows has listed all the file extensions avaliable there, but there is no general way to extract icons for those extension... kindly help icon changes with change of extension "Neelu" <nemesia31@gmail.com> wrote in message news:1161232739.720722.120950@b28g2000cwb.google...

Field Type Change
I am trying to change a free text field to a drop down menu in my current database, that already has data entered for this particular field, in order to avoid multiple versions of the same organization that are just typed in differently. I'm assuming that I'll need to recode the different versions of an entry to make them uniform but after that, I'm unsure how to proceed so I won't lose any data. Is this possible or will I need to delete the field, recreate it as a drop down and then re-enter the data? Thanks in advance! Mike Thanks everyone for all the input and advice s...

Tracking Changes
I am the author of a document and am making revisions to it. I want to chnage the redline color to denote new edits from the 1st version. Can anyone guide me through this process? I am sure it is easy but I cannot figure it out. THanks Peter On Wed, 10 Feb 2010 07:08:06 -0800, Peter SSI <Peter SSI@discussions.microsoft.com> wrote: >I am the author of a document and am making revisions to it. I want to >chnage the redline color to denote new edits from the 1st version. Can >anyone guide me through this process? I am sure it is easy but I cannot >figure i...

Save Changes? #2
Sometimes, but not always, Excel asks if I want to save the current file, even though I've made no changes. Does anyone know why this occurs, and if there is a setting I can change to avoid the prompt unless actual changes are made? Thank you. Sprinks There are a number of functions that will update themselves when the workbook is opened, and this causes Excel to act as though the workbook has been changed. These functions include NOW() , TODAY(), ROW(), etc. See Volatile Functions in help for more info. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consult...

colour change of dated box
How can I change the colour of a dated box of excel after the date is over. I want the programme to read date automatically from pc and change colour. try Conditional Formatting In 2003: 1. Select the cells you want to format 2. Choose Format, Conditional Formatting 3. Choose Cell Value Is from the first drop down 3. Choose Formula is from the first drop down 4. Choose less than 5. In the third box, enter =TODAY() 6. Click the Format button 7. Choose a color on the Patterns tab (or any available option) 7. Click OK twice. -- Hope this is helpful Appreciate that you provide your feedbac...

Daylight saving time changes for Exchange 2003 server
Hi guys, I was wondering how other real life systems administrators are preparing for the upcoming “2007 global time zone update for Windows” (daylight time change for exchange 2003 server). I'd like to know what contingency plans are being planned out to implement this update and what practical ideas you think thus far are the best. I would greatly value your input. http://www.microsoft.com/windows/timezone/dst2007.mspx -Thanks! ...

changes made but how do I revert !
When I deleted messages they used to dissapear straight away. Now when I delete a message it has a strike through line but the message remains, although it dissapears after I close outlook. I should also add that I use SPAM Inspector but I think this is an Outlook problem caused by some changes. the moral here is change one thing at a time ! Any ideas from anyone. email address required remove to be removed ! Kind regards Nigel Are you using an IMAP account? --� Milly Staples [MVP - Outlook] Post all replies to the group to keep the discussion intact. After searching google.groups.co...

Question about Excel (Office) auditing/changes
I have a document that will need to be posted on a website available for users to download & change/approve. The approval process will not make any changes at all to the document. However, I do need to know they've opened the document. Is there a way to get the name/machine/ip or something regarding who opens a file and when they open it? If so, I would like to do something like that, and either write it to something in the spreadsheet or as an audit trail in a database. If there's no way to do this, I am considering writing a small app that requires them to sign in (somet...

Bus. Card changes font when I change print copies / page. I save
Please use this space top fully ask your question. And we need details. -- JoAnn Paules MVP Microsoft [Publisher] "Grateful" <Grateful@discussions.microsoft.com> wrote in message news:61932EEC-79BB-45DF-87A2-8E5AE4BEC538@microsoft.com... > "JoAnn Paules [MVP]" wrote: > Please use this space top fully ask your question. And we need details. > I modified a design option in business cards. I created it as 1 copy / sheet. I saved it. When I try to print it as 10 / sheet, the font and font color didn't save. I went to styles and formatting...

Can't Send After Changing From/Reply-To
Greetings! I am using Outlook 2003 and Exchange server 2003 to try to send a message From public folder with the replies going to the same public folder. It utterly fails. I created a public folder under Exchange called ContactASA and gave myself "Send on behalf" priviledges. I then created a new message in Outlook, set the From field to ContactASA, and set the "Have replies sent to..." (reply-to) set to ContactASA. When I send the message to my gmail account I get the following error message: Your message did not reach some or all of the intended recipients. S...