我有一个使用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 :(得分:1)
The usual form is:
update
set
from
where x=y collate 'name of collation'
答案 1 :(得分: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