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 : 3 096

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éjà existante, cette colonne ne doit pas avoir de valeur par d Récupérer une colonne correspondante à une autre [ par guivrator ] Bonjour,J'explique rapidement mon problème:J'ai un tableau qui contient entre autres 3 informations importantes l'individu, la classe, et un type Dans [sql server 2008]HierarchyID et indexation [ par Alain Proviste ] Bonjour à tous,pour les besoins d'une application structurée en arbre, j'aimerais utiliser le nouveau type hierarchyid. Néanmoins, j'ai aussi besoin d table dans base de donnée avec mise à jour de colonne [ par lsamsoumal ] Bonjour tout le monde. dans une base de données mysql je veux créer une table presence qui contient 3 colonnes: utilisateur,date/heure et evenement. Récupérer le nom d'un champs / colonne en fonction Access [ par mladenski ] Bonjour.J'ai une table qui contient plusieurs champs de prix. J'ai crée une première fonction qui affiche le prix minimum de ces champs. Une 2ème fonc curseur T SQL [ par bluefred ] Salut, je suis débutant en SQL, je vais compter le nombre de caractère unique sur chaque ligne. dans une table j'ai une colonne qui est comme: id colo Créer une colonne en l'incrémentant de 1 a chaque fois dans un select. [ par Al3x_Oo ] Bonjour,J'ai un petit problème sous SQLite,Je voudrai écrire une requete avec un select et pouvoir créer ds ce select un compteur.le rowid n'est pas v Gestion de la pertinance avec la commande MATCH sur 1 colonne [ par ricozor ] Bonjour, j'essaye de faire une requette pour un champ d'autosuggestion mais j'aimerai gerer la pertinence je m'explique : je fais la recheche dans u [2008] Filestream et mode Design [ par cbu ] Bonjour à tous,je voudrais utiliser le Type Filestream.. Je l'ai activé avec succès sur mon serveur 2008.Je voudrais simplement savoir s'il est possib


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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,452 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é.