2009-10-08 10 views
5

Lors de la définition d'une table dans SQL Server Management Studio 2005, si je spécifie VARCHAR (10) pour une colonne, lorsque je tabule du type de données, SQL Server le modifie en VARCHAR (50). Je dois alors tabuler en arrière, le changer en VARCHAR (10), et il l'acceptera alors.SQL Server VARCHAR (10)

Je comprends qu'il y a des considérations de stockage et de traitement qui peuvent rendre VARCHAR (10) équivalent à CHAR (10) à toutes fins utiles, mais y a-t-il quelque chose qui me manque? Y a-t-il une raison suffisante que je ne considère pas, que le comportement par défaut du concepteur est de changer automatiquement la longueur de la colonne de ce que j'ai spécifié?

+0

Quelle version de Management studio? Si 2008, vous pouvez toujours cliquer sur le bouton de script et redéfinir le varchar 50 à 10. Je n'ai jamais rencontré cela, donc je suppose que c'est un bug dans la version que vous utilisez. – Codezy

+0

SSMS version 2005 - ajouté à la publication. –

+0

Toujours un bug dans SSMS 2008, en date du 28/04/2011. J'ai des colonnes "varchar (10)" que je change en "nvarchar (10)". Je clique sur le champ, j'ajoute un 'n', je clique ... SSMS le change en "nvarchar (50)". En fait, j'ai même essayé de coller la chaîne entière "nvarchar (10)" dans la colonne de type de données, et quand je clique, il la réinitialise à "nvarchar (50)". C'est un énorme BUG. – Triynko

Répondre

9

Non, c'est un bug dans SSMS lorsque vous tabulez loin d'un champ. Ça devient irritant.

+0

+1, arrive pour moi dans SQL Server 2005 –

+0

Encore un bug dans SSMS 2008 à partir du 28/04/2011. – Triynko

4

probablement c'est juste un bug dans le concepteur.

0

Non, le concepteur n'a absolument aucune raison de modifier le type de données. Et je ne peux pas le reproduire dans Management Studio 2008.

Si vous êtes tellement en concepteur, créer un UDT (type défini par l'utilisateur) et de l'utiliser au lieu de varchar(10):

create type dbo.MyChar from varchar(10) not null 
+0

c'est un bug en 2005 – BBlake

+0

J'utilise SSMS 2005, donc il semble qu'ils aient changé (corrigé) en 2008. Je sais que c'était comme ça en 2000 aussi. –

+0

Bah. Impossible de modifier les commentaires Je * pensais * que c'était comme ça dans SSEM 2000, mais cela ne semble pas être le cas. –

0

Je recommande fortement de passer à Toad for SQL Server pour se débarrasser de toutes ces contrariétés ..

+0

malheureusement, pour la plupart d'entre nous, dans nos mondes d'entreprise, ce n'est pas une option. Si ce n'est pas sur la liste approuvée, c'est interdit. – BBlake

2

Je suggère fortement ne jamais utiliser le concepteur pour créer une table ou modifier une structure de table. Vous devez écrire une instruction create table ou alter table pour cela et la placer dans le contrôle source. Ensuite, il est plus facile de déployer en production.

+0

Écoutez, écoutez! Améliorez votre code SQL ... – gbn

0

Il est un bogue dans SSMS 2008 quand vous allez ailleurs sans cliquer sur le type de données qu'il faut réglage par défaut comme varchar (50) .. donc ne vous inquiétez pas et pas besoin de penser, juste gérer soigneusement ..

Questions connexes