2010-10-27 86 views
2

在SSMS 2008 R2中,我創建了一個表:如何編寫非默認排序規則並跳過顯式腳本以進行默認排序?

aTest(Albnian varchar(10), Dflt varchar(10)) 

在SSMS表設計,兩列有歸類: 「<數據庫默認>」(在 「列屬性」 → 「表設計器」)

我將列「Albnian」的排序規則更改爲非默認列,例如Albanian_CI_AS。

如果我在SSMS中編寫腳本(右鍵單擊「aTest」→「Script Tables as」→「CREATE To」→「新建查詢編輯器窗口」),我得到[1]沒有明確的排序規則。

壞。

顯然,人們所期望的表與非默認的排序規則(即開發商故意與特定目的引入的一個),並沒有校對默認排序規則明確的排序規則腳本。

在SSMS菜單→工具→選項→SQL Server對象瀏覽器→腳本中,我改變了:

  • 包括歸類:真
  • 腳本的默認值:假

,但現在,我得到的所有列的排序規則腳本,包括默認和非默認的[2]。

如何將腳本生成配置爲腳本非默認排序並跳過默認排序,如[3]中所示?

表的

[1]默認腳本:

CREATE TABLE [dbo].[aTest] 
(
    [Albnian] [varchar](10) NOT NULL, 
    [Dflt] [varchar](10) NOT NULL 
) ON [PRIMARY] 

[2]表腳本 「包括歸類」 後改變爲True

CREATE TABLE [dbo].[aTest] 
(
    [Albnian] [varchar](10) COLLATE Albanian_CI_AS NOT NULL, 
    [Dflt] [varchar](10) COLLATE Cyrillic_General_CI_AS NOT NULL 
) ON [PRIMARY] 

[3]所需整理腳本生成行爲:

CREATE TABLE [dbo].[aTest] 
(
    [Albnian] [varchar](10) COLLATE Albanian_CI_AS NOT NULL, 
    --non-default should be scripted 

    [Dflt] [varchar](10) NOT NULL 
    -- default database collation should not be scripted 
) ON [PRIMARY] 

相關問題:

+0

我看到在使用的版本沒有危害[2]。你爲什麼反對呢? – 2010-10-27 14:08:06

+0

這是被部署到不同的默認排序規則的服務器,也無意對列用英語只有文字 – 2010-10-27 14:22:39

+0

在這種情況下,任何西里爾面向固定選項,你可能只是做一個清理後的搜索和替換在您生成的腳本文件中刪除不需要的排序規則。 – 2010-10-27 14:39:22

回答

1

我提交了一份建議,通過MS連接:
Collations are scripted either for all columns or for none

這裏的相關回應:

發佈者微軟上11/11/2010 10 :16 AM
Hi Gennady:

感謝您致信微軟。我們非常重視您的反饋。我們瞭解您的問題,以及如何解決此問題可以提高生產力。

然而,考慮到將參與實施這項工作的工作,我們交付的設置,我們不認爲,我們將能夠得到這在不久的將來。

說了這麼多,我們重視您的建議,並願向你保證,我們將保留這些想法,當我們重新審視在未來這一功能。再次

感謝您提供反饋,使SQL Server的最大數據庫服務器。

問候

Chandramouli