SQL: Collation

1 post / 0 new
benzzon
benzzon's picture
SQL: Collation
-- Visa serverns default collation:
sp_helpsort

-- Visa databas collation:
sp_helpdb @database@

-- Ändra collation för en databas:
alter database @database@ COLLATE Finnish_Swedish_CI_AS

-- Script som skapar script för att ändra collation för tabellers datafält:
select
'alter table ' + sysobjects.name + ' alter column [' + syscolumns.name +'] '+  systypes.name
+ '(' + cast(syscolumns.length as varchar) + ')' + ' collate ' + 'Finnish_Swedish_CI_AS'

from syscolumns , sysobjects, systypes where syscolumns.collation = 'SQL_Latin1_General_CP1_CI_AS'
 
and sysobjects.xtype='U' and sysobjects.id = syscolumns.id
and systypes.xtype=syscolumns.xtype and systypes.name <> 'sysname'
 
order by sysobjects.name,syscolumns.colid

OBS: Scriptet kan behöva kompletteras ytterligare för att hantera 'ntext', datatypen ges felaktigt en längd om 16 tecken..
 
-- Vanliga collations:
-- "Finnish_Swedish_CI_AS"
-- "SQL_Latin1_General_CP1_CI_AS"
 
För att installera SQL-server 2000 med "SQL_Latin1_General_CP1_CI_AS" så
ska "Dictionary order, case-insensitive, for use with 1252 character set" väljas vid setup.
("SQL_Latin1_General_CP1_CI_AS" är default på system som har locale "U.S English"..)