begin process at 2010 03 15 20:15:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fonctions

 > SQL SERVER 2005 - SUPPRIMER TOUS LES CHARACTERES VIDES A LA FIN DES CHAMPS TEXTE (VARCHAR OU NVARCHAR) D'UNE BASE

SQL SERVER 2005 - SUPPRIMER TOUS LES CHARACTERES VIDES A LA FIN DES CHAMPS TEXTE (VARCHAR OU NVARCHAR) D'UNE BASE


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fonctions Classé sous :tronquer, espace, trim, rtrim Niveau :Expert Date de création :19/02/2007 Date de mise à jour :19/02/2007 15:18:13 Vu :5 114

Auteur : fabrice69

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note


 Description

Dans certains cas de chargement de données provenant de bases fonctionnant en taille fixe (fichier plat provenant de SAP, Export de bases DB2, fichier CSV en taille fixe, ...), les données de type VARCHAR ou NVARCHAR peuvent avoir des espaces.
Ceci peut prendre beaucoup de place pour de très gros volumes et poser des problèmes pour les champs de comparaison, ...

Ce script a pour but de vous permettre de tronquer ces espaces afin de ne laisser que les données dans les cases.
Il est fourni pour SQL Server 2005, sa correspondance en SQL Server 2000 demande une modification de la requête d'alimentation.
La version 2000 est disponible ici :
- http://www.sqlfr.com/code.aspx?ID=41544


Source

  • USE [MABASE]
  • GO
  • DECLARE @SQLCMD AS VARCHAR(MAX)
  • DECLARE CURSORLISTCHEMA CURSOR FOR SELECT
  • 'UPDATE ['+ TABLE_CATALOG +'].['+ TABLE_SCHEMA +'].['+ TABLE_NAME +'] SET ['+ COLUMN_NAME +']=RTRIM(['+ COLUMN_NAME +'])' AS SQL
  • FROM INFORMATION_SCHEMA.COLUMNS
  • WHERE (UPPER(DATA_TYPE) = 'VARCHAR'
  • OR UPPER(DATA_TYPE) = 'NVARCHAR')
  • 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 @SQLCMD		AS VARCHAR(MAX)	

DECLARE CURSORLISTCHEMA CURSOR FOR SELECT 
   'UPDATE ['+ TABLE_CATALOG +'].['+ TABLE_SCHEMA +'].['+ TABLE_NAME +'] SET ['+ COLUMN_NAME +']=RTRIM(['+ COLUMN_NAME +'])' AS SQL 
   FROM INFORMATION_SCHEMA.COLUMNS 
   WHERE (UPPER(DATA_TYPE) = 'VARCHAR'
   OR UPPER(DATA_TYPE) = 'NVARCHAR')

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]


 Historique

19 février 2007 15:18:15 :
Ajout du lien pour la version 2000 du script

 Sources du même auteur

SQL SERVER - OBTENIR LES VALEURS CORRESPONDANT A DES UNICODE
SQL SERVER 2000 - VIDER ET COMPACTER TOUTES LES BASES DE DON...
SQL SERVER 2005 : OBTENIR LA LISTE DES BASES DE CONTENU D'UN...
SQL SERVER - OBTENIR LA POSITION DU PREMIER CHIFFRE D'UNE CH...
SQL SERVER - UPDATE D'UNE TABLE EN BOUCLE PAR LOT

 Sources de la même categorie

Source avec Zip CALCUL UNE DIFFÉRENCE DE DATE EN FONCTION DE JOURS FÉRIÉS/TR... par Sieurcoug
Source avec Zip CONVERSION DE NOMBRE EN LETTRES (SQL) par wormlore
NO HTML BALISE [MYSQL] par abdoulax
MYSQL : FONCTION POUR GÉRER DES COMPTEURS ÉQUIVALENT AUX SÉQ... par maitredede
RÉINDEXER TOUTES LES TABLES D'UNE BASE DE DONNÉES par pneau

 Sources en rapport avec celle ci

SQL SERVER : VÉRIFICATION DE L'ESPACE LIBRE SUR LE SERVEUR par skweeky
SQL SERVER 2000 - SUPPRIMER LES ESPACES VIDES EN FIN DE CHAM... par fabrice69
SQL SERVER - PROCÉDURE STOCKÉE QUI TRONQUE LES JOURNAUX DE L... par gigiou

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Probleme sous MS Reporting avec le substr [ par Boulet1 ] Bonjour je suis en stage et je travail sous Visual studion .Net 2003. Jé une requète qui ne fonctionne pas a cause du substr : ="SELECT "+"& Probleme sous MS Reporting avec le substr [ par Boulet1 ] Bonjour je suis en stage et je travail sous Visual studion .Net 2003. Jé une requète qui ne fonctionne pas a cause du substr : ="SELECT "+"& Problème requête UPDATE. [ par woot6768 ] Bonjour,J'ai un soucis avec une requête UPDATE, je vous fournis le code correspondant (codé en c#) :string lineCmd = "UPDAT Espace membre avec lien direct à une gallerie Slideshowpro [ par MrsSpooky ] Hello, J'aimerais créer une zone membre sur mon site. J'ai trouvé pas mal de codes sources d'exemple (je suis débutante[^^confus5]) mais j'ai besoin


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales