2012-05-10 2 views
1

J'ai une base de données de production dont j'ai besoin pour faire une modification de varchar à nvarchar dans la conception de colonne. Je sais que je peux le forcer à recréer le design et le sauvegarder mais est-ce une bonne idée de le faire?Modification de la conception de colonne de base de données dans SQL Server

Quels pourraient être les résultats et d'autres suggestions?

Mise à jour: Son SQL Server 2008

+0

Quelle est la taille de la table? La base de données est-elle constamment utilisée ou existe-t-il une période en dehors des heures où les mises à jour peuvent être effectuées sans impact sur les utilisateurs? – GarethD

Répondre

0

@Ye Aung Myat, vous pouvez directement modifier le type de données de varchar à nvarchar. Pas besoin de recréer la structure. Prenez simplement soin de la taille de la colonne, car nvarchar enregistre les données en unicodes, il sera presque double pour le varchar.

0

Je suggère de créer une base de données de test à partir de la base de données de production et exécutez le script pour mettre à jour le type de champ.

0

Vous devez suivre les étapes suivantes:

  1. Ouvrez la table en vue de la conception.
  2. Maintenant, vous changez le type de données de varchar en NVarchar au moment de la conception et de ne pas le sauvegarder.
  3. Maintenant, vous appuyez sur "Modifier générer un script" qui est disponible en haut à gauche de la barre d'en-tête.
  4. Enregistrez le script et exécutez-le.

C'est la solution pour sauver plus les serveurs de production afin d'éviter toute perte de données.

0

Si vous utilisiez Visual Studio Database Edition pour générer le script de déploiement, celui-ci serait automatiquement créé pour vous. Cependant, ce qu'il fait derrière est
1) Créer une table avec la nouvelle définition. Nommez simplement votre table avec {TableName} _new.
2) Créer les indices que vous avez sur la vieille table
3) Créer les éléments déclencheurs que vous aviez sur la vieille table (et les désactiver)
4) Copie sur les données de l'ancienne table à la nouvelle table.
5) Renommez l'ancien tableau en ajoutant _old au nom de la table
6) Renommer la nouvelle table en laissant tomber le _NEW du nom

Questions connexes