执行SELECT INTO时是否可以指定排序规则

时间:2011-10-07 07:40:01

标签: tsql collation

如果我从一个来源选择另一个来源,我可以同时指定整理。

e.g。

SELECT Column1, Column2
INTO DestinationTable
FROM SourceTable

“DestinationTable”尚不存在。

我知道我可以做类似

的事情
SELECT Column1, Column2 COLLATE Latin1_General_CI_AS
INTO DestinationTable
FROM SourceTable

在我的实际问题中,列的数据类型事先是未知的,所以我不能只为每列添加排序规则。它位于遗留应​​用程序的一角,使用生成SQL的大型讨厌的存储过程,我试图让它在一个新的服务器上运行,该服务器在tempdb中具有不同的排序规则,只需要很少的更改。

我正在寻找类似的东西:

SELECT Column1, Column2
INTO DestinationTable COLLATE Latin1_General_CI_AS
FROM SourceTable

但这不起作用。

3 个答案:

答案 0 :(得分:2)

您可以先创建表吗?

您可以为相关列定义排序规则。在INSERT上,他们将被强迫。

听起来你不知道目标表的结构......所以不行,你不能没有动态SQL。哪会让事情变得更糟......

答案 1 :(得分:0)

如果有帮助,您可以这样做:

dict = {
    "score": 2,
    "lat": 51,
    "lon": 19,
    "loc": {
        "country": "Poland",
        "city": "Warsaw",
        "street": "Cicha",
        "st_nr": 1
    }
}

答案 2 :(得分:0)

纠正 Kasia 的回答:

SELECT *
INTO DestinationTable
FROM
(
SELECT Column1  COLLATE Latin1_General_CI_AS as Column1
       ,Column2  COLLATE Latin1_General_CI_AS as Column1
FROM SourceTable
) as t

您必须为每列添加一个别名才能完成这项工作。