Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SQL SERVER 2005 - CHANGER LE TYPE DE DONNEES DE TOUTES LES COLONNES AYANT UN NOM FOURNI


Information sur la source

Catégorie :Trucs & Astuces Classé sous : change, colonne, type, modification Niveau : Expert Date de création : 27/10/2006 Vu : 2 469

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note


Description

Lors d'utilisation d'outil générique de création de tables de données, on peut se retrouver avec des type de données qui doivent être changé pour améliorer les performances.
De ce fait, ce script permet d'effectuer ce changement de type automatiquement sur tous les champs ayant le nom fourni.
 

Source

  • USE [MaBase]
  • GO
  • DECLARE @NewType AS VARCHAR(50)
  • DECLARE @ColumnName AS VARCHAR(50)
  • DECLARE @SQLCMD AS VARCHAR(MAX)
  • SET @NewType = 'VARCHAR(14)'
  • SET @ColumnName = 'MONCHAMP'
  • DECLARE CURSORLISTCHEMA CURSOR FOR SELECT 'ALTER TABLE ['+ TABLE_SCHEMA +'].['+ TABLE_NAME +'] ALTER COLUMN '+ COLUMN_NAME +' '+ @NewType
  • FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = @ColumnName
  • OPEN CURSORLISTCHEMA
  • FETCH NEXT FROM CURSORLISTCHEMA INTO @SQLCMD
  • WHILE (@@fetch_status >= 0)
  • BEGIN
  • PRINT @SQLCMD
  • EXECUTE(@SQLCMD)
  • FETCH NEXT FROM CURSORLISTCHEMA INTO @SQLCMD
  • END
  • CLOSE CURSORLISTCHEMA
  • DEALLOCATE CURSORLISTCHEMA
USE [MaBase]
GO

DECLARE @NewType			AS VARCHAR(50)
DECLARE @ColumnName		AS VARCHAR(50)
DECLARE @SQLCMD		AS VARCHAR(MAX)	

SET @NewType = 'VARCHAR(14)'
SET @ColumnName = 'MONCHAMP'

DECLARE CURSORLISTCHEMA CURSOR FOR SELECT 'ALTER TABLE ['+ TABLE_SCHEMA +'].['+ TABLE_NAME +'] ALTER COLUMN '+ COLUMN_NAME +' '+ @NewType 
					FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = @ColumnName

OPEN CURSORLISTCHEMA
FETCH NEXT FROM CURSORLISTCHEMA INTO @SQLCMD
WHILE (@@fetch_status >= 0) 
	BEGIN 
		PRINT @SQLCMD
		EXECUTE(@SQLCMD)
		FETCH NEXT FROM CURSORLISTCHEMA INTO @SQLCMD
	END
CLOSE CURSORLISTCHEMA
DEALLOCATE CURSORLISTCHEMA

Conclusion

Bon coding

Romelard Fabrice [MVP]
 

Commentaires et avis

signaler à un administrateur
Commentaire de Tukkkko le 29/10/2006 00:56:34

Il fallait vraiment y penser, heureusement qu'on a des MVP productifs :D

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Modif colonne MONEY en decimal [ par caligreg ] Bonjour,j'aimerais modifier le type de colonne d'une table pour la passer de type MONEY en type DECIMAL pour pouvoir saisir plus de 2 chiffres aprés l Ajout d'une colonne de type non null [ par RMI ] Bonjour, Je souhaite ajouter un colonne de type non null dans une table d&#233;j&#224; existante, cette colonne ne doit pas avoir de valeur par d remplacement d'un caractère dans une colonne de ma BDD [ par commode59 ] bonjour a tous,J'ai un petit soucis avec ma bdd sql, la plus par de mes enregistrements ont &#233;t&#233; fait avec des '_' &#224; la place d'espace.& table type de document [ par moostach ] Bonjour, il me semble avoir vu par l'un de vos sites ou l newsletter un article ou source traitant de document et de leur type en terme de fichier inf ACCESS : Valeur par défaut [ par alonsyl ] bonjour, j'essaie d'ajouter une colonne a ma&nbsp;base MSACCESS via une rqte SQL.apres verification, je me suis appercu que ca ne fonctionnait pas car grouper par une colonne [ par Fildomen ] Salut !!j'ai une table comme ceciid&nbsp;&nbsp; utilisateur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type1&nbsp;&nbsp;&nbsp;&nbsp;uti1&nbsp;&nbsp;&nbsp;&nbsp;&nb dates qui plantent tout !! [ par chamallow ] Bonjour,Alors voil&#224;, j'utilise une base SQL SERVER. Pour me rassurer, il n'existe pas de type date pour ce type de base non? (J'utilise datetime, un BETWEEN qui me chagrine !! [ par nadegeva ] Bonjour &#224; tous,1/ je d&#233;bute en PHP mais je me soigne.2/ Voici mon probl&#232;me :J'ai un petit formulaire avec un champ Pbm de foreign key pas prises en compte [ par romca ] Salut voilà j'ai un pbm sous ma distrib mes foreign key ne sont pas pris en compte et pourtant j'ai aucune erreur.<?xml:namespace prefix = o ns = "urn Champs email [ par StephaneNet ] Bonjour, Je dois creer une table des adherents de mon site et j'ai un champs email.Pour faire des test je rentre manuellement un mail dans ma table. M


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.