オプション1:新しい空のデータベースを起動します。
オプション2:SonarQubeデータベースを復元し、再度アップグレードを開始する前に(データベースがSonarQubeと呼ばれていると仮定して)SQL Management Studioを使用して、データベースの照合順序を変更します。
-- Show current collation
USE [master]
GO
SELECT [collation_name]
FROM [sys].[databases]
WHERE name = 'SonarQube'
GO
結果がLatin1_General_CS_ASでなければなりません。クエリがSQL_Latin1_General_CP1_CS_ASを返した場合は6.0にアップグレードする前に、データベースの照合順序を変更:
USE [master]
GO
ALTER DATABASE [SonarQube] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [SonarQube] COLLATE Latin1_General_CS_AS;
ALTER DATABASE [SonarQube] SET MULTI_USER
GO
オプション3:(最後の)データベースの照合順序を変更します(オプション2を参照)、(SQL Management Studioを使用して)手動でデータベースを変更。最初に次のクエリを実行します。
USE [SonarQube]
GO
SELECT '[' + SCHEMA_NAME(t.[schema_id]) + '].[' + t.[name] + '] -> ' + c.[name]
, 'ALTER TABLE [' + SCHEMA_NAME(t.[schema_id]) + '].[' + t.[name] + ']
ALTER COLUMN [' + c.[name] + '] ' + UPPER(tt.name) +
CASE WHEN t.name NOT IN ('ntext', 'text')
THEN '(' +
CASE
WHEN tt.name IN ('nchar', 'nvarchar') AND c.max_length != -1
THEN CAST(c.max_length/2 AS VARCHAR(10))
WHEN tt.name IN ('char', 'varchar') AND c.max_length != -1
THEN CAST(c.max_length AS VARCHAR(10))
WHEN tt.name IN ('nchar', 'nvarchar', 'char', 'varchar') AND c.max_length = -1
THEN 'MAX'
ELSE CAST(c.max_length AS VARCHAR(10))
END + ')'
ELSE ''
END + ' COLLATE Latin1_General_CS_AS' +
CASE WHEN c.[is_nullable] = 1
THEN ' NULL'
ELSE ' NOT NULL'
END
FROM [sys].[columns] c
JOIN [sys].[tables] t ON c.[object_id] = t.[object_id]
JOIN [sys].[types] tt ON c.[system_type_id] = tt.[system_type_id] AND c.[user_type_id] = tt.[user_type_id]
WHERE c.[collation_name] IS NOT NULL
AND c.[collation_name] != 'Latin1_General_CS_AS'
AND t.[type] = 'U'
GO
これはいくつかの行を返します。
一部の列は、最初に削除する必要がある索引で使用されるため、この方法では変更できません。例:
-- Pay attention: generate script first!
DROP INDEX [resource_index_component] ON [dbo].[resource_index]
GO
ALTER TABLE [dbo].[resource_index]
ALTER COLUMN [component_uuid] NVARCHAR(50) COLLATE Latin1_General_CS_AS NOT NULL
GO
-- Generate the create script in SQL Management Studio...
CREATE NONCLUSTERED INDEX [resource_index_component]
ON [dbo].[resource_index] ([component_uuid] ASC)
WITH (...) ON ...
GO
SonarQubeを再起動して、アップグレードを再開してください。
このスレッドに興味があります:https://groups.google.com/forum/#!searchin/sonarqube/collation%7Csort:relevance/sonarqube/2HYcA97CdY0/JtFRC2YMBgAJ –
ここに同じ問題があります。これを見てください(http://stackoverflow.com/questions/9698618/sql-latin1-general-cp1-cs-as-vs-latin1-general-cs-as)ので、質問: "唯一の本当の違いは、いくつかの文字の並べ替え順序 " –