2017-06-14 5 views
0

にソート機能を使用するには:私はEntity Frameworkを使用してアプリケーションを持っているし、私のデータベースの照合順序がどのように更新クエリ

Latin1_General_CI_AS 

が、私のクライアントのデータベースはGeorgian_Modern_Set_CI_ASです。これは大きな問題ですが、この問題を「照合」機能で解決しました。私たちはnvarcharの値をLatin1_General_CI_ASと照合します。

-- with this function we can easily select the data and get into our application. 
select Name collate Latin1_General_CI_AS as Name from Users 

しかし、私はいくつかの更新文を持っていると私はちょうど更新クエリの「丁合い」関数を使用する方法をお願いしたいと思います?

ご意見はありますか?

おかげ

+0

あなたのwhere句に意味しますか? – SqlWorldWide

+0

@SqlWorldWide更新クエリで照合関数を使用する方法はありますか? – saulyasar

答えて

1
The usual form is: 
update 
set 
from 
where x=y collate 'name of collation' 
0

アップデート中にコレート機能を使用することができ、いくつかの方法があります。

hereからコピーされたコードの一部。

CREATE TABLE #temp1 (
     col1 NVARCHAR(10) COLLATE Latin1_General_CS_AS 
    , col2 NVARCHAR(30) COLLATE Latin1_General_CS_AS 
     ) 
GO 

CREATE TABLE #temp2 (
     col1 NVARCHAR(10) COLLATE Latin1_General_CI_AS 
    , col2 NVARCHAR(30) COLLATE Latin1_General_CI_AS 
     ) 
GO 

-- insert sample data 
INSERT INTO #temp1 (
     col1 
    , col2 
     ) 
SELECT 'test1', 'This is test row 1' 
UNION ALL 
SELECT 'test2', 'This is test row 2' 
UNION ALL 
SELECT 'test3', 'This is test row 3' 
GO 

INSERT INTO #temp2 (
     col1 
    , col2 
     ) 
SELECT 'test1', 'sample data item 1' 
UNION ALL 
SELECT 'test2', 'sample data item 2' 
UNION ALL 
SELECT 'test3', 'sample data item 3' 
GO 

UPDATE 
    t2 
SET 
    t2.col2 = t1.col2 
FROM 
    #temp1 t1 
INNER JOIN 
    #temp2 T2 
ON 
    t1.col1=t2.col1 COLLATE Latin1_General_CI_AS 

UPDATE 
    t2 
SET 
    t2.col2 = t1.col2 
FROM 
    #temp1 t1 
INNER JOIN 
    #temp2 T2 
ON 
    t1.col1=t2.col1 COLLATE DATABASE_DEFAULT 

UPDATE 
    t2 
SET 
    t2.col2 = t1.col2 
FROM 
    #temp1 t1 
INNER JOIN 
    #temp2 T2 
ON 
    t1.col1 COLLATE DATABASE_DEFAULT =t2.col1 

クリーンアップ

-- clean up 
DROP TABLE #temp1 
GO 
DROP TABLE #temp2 
GO 
関連する問題