1

SQL Server Express 2008 R2 をインストールし、インストール時に照合順序を Modern_Spanish_CS_AS に設定しました。

SQL Server Management Studio では、サーバーにもこの照合順序とデータベースがあることがわかりますが、クエリを実行し、条件として文字列を設定すると、上位または下位の文字列を使用しても同じ結果が得られます。

これは新しいインストールですが、前回のインストールではこれが機能したことを覚えています。

ありがとう。

編集:

これは作成されたテーブルです

CREATE TABLE [dbo].[Usuarios](
    [IDUsuario] [bigint] IDENTITY(1,1) NOT NULL,
    [NombreUsuario] [varchar](200) NULL,
    [Password] [varchar](200) NULL,
 CONSTRAINT [PK_Usuarios] PRIMARY KEY CLUSTERED 
(
    [IDUsuario] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY],
 CONSTRAINT [IX_NombreUsuario] UNIQUE NONCLUSTERED 
(
    [NombreUsuario] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

これはクエリです:

select * from Usuarios where NombreUsuario = 'USUARIO01';
select * from Usuarios where NombreUsuario = 'Usuario01';

どちらのクエリも同じレジスタを返します。

編集2:

このクエリを実行します。

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Collation') DBCollation,collation_name FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[Usuarios]') AND name = 'NombreUsuario'

結果は次のとおりです。

DB_COllation: Modern_Spanish_CS_AS
CollationName: Modern_Spanish_CI_AS
4

1 に答える 1

1

サーバーまたはデータベースの照合順序を変更しても、既存のオブジェクトには影響しません。オブジェクトは、指定された照合設定または作成時のデフォルトであった照合設定を保持します。

既存の列を変更するには、次のようにします。

ALTER TABLE Usuarios
    ALTER COLUMN NombreUsuario
        [varchar](200) collate Modern_Spanish_CS_AS NULL

変更する必要があるすべての列を見つけるには:

SELECT * FROM sys.columns where collation_name <> 'Modern_Spanish_CS_AS'
       and OBJECTPROPERTY(object_id,N'IsMSShipped')=0

(便利なことに、非テキスト列は照合順序があるため返されませんNULL)

于 2013-05-17T06:27:18.420 に答える