2010-10-27 6 views
2

Dans SSMS 2008 R2, je créé une table:Comment écrire un classement par défaut et ignorer les scripts explicites pour le classement par défaut?

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

dans le concepteur de table SSMS, les deux colonnes ont la collation: "défaut de base de données < >" (sous "Propriétés colonne" → "Table design")

J'ai changé le classement de la colonne "Albnian" en un non-défaut, par exemple, Albanian_CI_AS. Si je code la table dans SSMS (clic droit sur "aTest" → "Script Tables as" → "CREATE To" → "Nouvelle fenêtre d'éditeur de requêtes", j'obtiens [1] sans script explicatif du tout.

Bad.

de toute évidence, on peut s'y attendre de la table à écrire des scripts avec classement explicite pour le classement non par défaut (celui que le promoteur a introduit intentionnellement dans un but précis) et aucun classement pour le classement par défaut.

Dans le menu SSMS → Outils → Options → Explorateur d'objets SQL Server → Script, j'ai changé:

  • Inclure la collation: True
  • par défaut Script: Faux

mais maintenant, je reçois toutes les colonnes scénarisées classements, à la fois par défaut et les non par défaut [2].

Comment est-ce que je peux configurer la génération de script pour écrire un classement non-par défaut et ignorer ceux par défaut, comme dans [3]?

[1] script par défaut de la table:

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

[2] script table après "Inclure la collation" changé 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] nécessaire comportement de génération de script de classement:

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] 

Questions connexes:

+0

Je ne vois pas de mal à utiliser la version [2]. Pourquoi vous opposez-vous à cela? –

+0

Ceci doit être déployé sur un serveur avec un classement par défaut différent, il n'y a aucune intention d'avoir des options fixes orientées cyrilliques sur les colonnes avec du texte en anglais seulement –

+0

Dans ce cas, vous devrez effectuer une recherche post-nettoyage sur votre fichier script généré pour supprimer le classement indésirable. –

Répondre

1

J'ai présenté une suggestion par MS Connect:
Collations are scripted either for all columns or for none

est ici la réponse connexe:

Publié par Microsoft le 11/11/2010 à 10 : 16 AM
Salut Gennady:

Merci d'avoir écrit pour Microsoft. Nous apprécions grandement vos commentaires. Nous comprenons votre problème et la façon dont cela pourrait améliorer la productivité.Cependant, étant donné le travail qui serait impliqué dans la mise en œuvre de ce travail, et notre ensemble de livrables, nous ne pensons pas, nous serions en mesure d'y arriver dans un proche avenir. Cela dit, nous apprécions vos suggestions et nous vous assurons que nous garderons ces idées à l'esprit lorsque nous reviendrons sur cette fonctionnalité à l'avenir.

Merci encore de fournir des commentaires et de faire de SQL Server le meilleur serveur de base de données.

Cordialement

Chandramouli

Questions connexes