Je sais, c'est risible mais je viens seulement de découvrir ce raccourci clavier.
Whiskies, Cigars & Consulting





Aller au contenu | Aller au menu | Aller à la recherche
mercredi 3 octobre 2007
Par Djeepy1 le mercredi 3 octobre 2007, 15:05 - Développement
Je sais, c'est risible mais je viens seulement de découvrir ce raccourci clavier.
vendredi 10 août 2007
Par Djeepy1 le vendredi 10 août 2007, 11:47 - SQL Server
Dans mon script de pré-déploiement, je souhaite arrêter le déploiement si une base de données n'existe pas.
Comme indiqué en entête de Script.PreDeployment.sql, je me décide à utiliser la syntaxe de SQLCMD (qui sera utilisé pour jouer mon script).
J'écris donc une commande de ce style :
IF NOT EXISTS (SELECT 1 FROM
[sys].[databases] WHERE [name] = N'$(DatabaseName)')
QUIT
Seulement, comme pour les variables, l'étape de parsing à la compilation d'un projet de base de données ne supporte pas le mot-clé QUIT (ni EXIT d'ailleurs). Donc impossible de sortir du script sur une condition.
Solution de contrournement : lever une erreur avec l'instruction RAISERROR et utiliser l'option -b avec SQLCMD pour stopper le script sur erreur
IF NOT EXISTS (SELECT 1 FROM
[sys].[databases] WHERE [name] = N'$(DatabaseName)')
RAISERROR(N'Database $(DatabaseName) does not exists, setup could
not be execute.',0,1)
lundi 6 août 2007
Par Djeepy1 le lundi 6 août 2007, 12:58 - SQL Server
J'étais super content que la SR1 de TeamDB (ou DBPros alias Visual Studio Team Edition for Database Professional) sorte enfin des cartons. En effet, j'en avais besoin pour utiliser les variables au niveau projet. J'ai été un peu déçu de voir qu'on ne pouvait les utiliser que dans un contexte restreint.
Laissez moi vous décrire le besoin que j'avais dans mes scripts de pré et post déploiement. Je voulais appliquer des scripts conditionnels en fonction du mode de compilation (release ou debug). Ce que je voudrais ressemblerait à peu près à cela :
IF $(DEBUG) = 1
Begin
--test data for development environment
INSERT INTO dbo.myTable VALUES('some data')
End
Dans les propriétés du projet ça donne cela :

Mais $(DEBUG) utilisé comme ci-dessus génère une erreur au
parsing pendant la compilation. En effet, selon l'outil, on ne peut pas
utiliser une variable de cette façon alors que c'est conforme avec la syntaxe
de l'outil SQLCMD qui est utilisé par DBPros pour jouer le script sur le
serveur. Le parsing de la compilation n'accepte que l'utilisation dans une
chaîne de caractères ou comme nom d'entité SQL Server (une table ou un serveur
lié); ex : Select * From [$(TableName)].
J'utilise alors la solution de contournement suivante qui j'avoue n'est pas très élégante mais qui fonctionne :
Declare @debug as int
Select @debug = cast('$(DEBUG)' as int)
If @debug = 1
Begin
--do my stuff
print 'DEBUG MODE!!!'
End
Si vous trouvez un méthode plus élégante, je suis preneur...
samedi 26 mai 2007
Par Djeepy1 le samedi 26 mai 2007, 10:28 - SQL Server
Il y a quelques temps, j'ai enregistré une série de webcasts sur le petit
dernier de la suite Visual Studio Team Suite, à savoir, une version dédiée à la
gestion de base de données.
Ces webcasts devaient être mis en ligne sur le centre de compétences Team
System de Microsoft mais pour je ne sais quelle raison, ils ne l'ont pas
fait.
Ce sont mes premiers webcasts donc la qualité laisse à désirer, surtout au niveau du son donc faites péter les watts.
" Découvrez au travers de cette série de Webcast la dernière version de Visual Studio, membre de la famille Team System, à destination des professionnels de la base de données. Les principales fonctionnalités de l’outil sont passées en revue, de l’importation de schéma au déploiement des modifications. "
![]()
TeamDB - Part 1 - Présentation et prise en main
![]()
TeamDB - Part 2 - Les tests
![]()
TeamDB - Part 3 - La compilation et le déploiement
Bon visionnage