Aller au contenu | Aller au menu | Aller à la recherche

mercredi, décembre 6 2006

Lister les fonctions (UDF), procédures stockées d'une base SQL SERVER


  • Lister les fonctions:
SELECT name FROM sysobjects WHERE type='FN'
  • Lister les procédures stockée:
SELECT name FROM sysobjects WHERE type='P'
  • On peut aussi avoir une vue plus précise de tout ça:
SELECT * FROM INFORMATION_SCHEMA.ROUTINES
  • Ne lister que les fonctions qui ne sont pas système:
SELECT SPECIFIC_NAME, ROUTINE_TYPE, DATA_TYPE
FROM INFORMATION_SCHEMA.ROUTINES
WHERE PATINDEX('%sp_%',SPECIFIC_NAME)=0
AND PATINDEX('%dt_%',SPECIFIC_NAME)=0
ORDER BY ROUTINE_TYPE, DATA_TYPE

mardi, novembre 7 2006

SQL SERVER 2005 :: Erreur :: Could not find server in sysservers ou The cursor does not include the table being modified or the table is not updatable through the cursor


SELECT @@SERVERNAME sp_dropserver LA_VALEUR_RENVOYEE_PAR_LE_SELECT_AU_DESSUS go sp_addserver 'LE_NOM_DE_LA_MACHINE', local net stop mssqlserver net start mssqlserver

lundi, août 7 2006

SQL Server Réindexer un index d'une table

A l'aide de la procédure stockée system suivante:

DBCC INDEXDEFRAG( @dbname, @objName, @idxName)

mercredi, juin 7 2006

Des UDF pour SQL SERVER

Voici quelques fonctions bien utile venant du site developpez.com, excellent site d'ailleur:

Lien

dimanche, juin 4 2006

SQL Server :: Compresser le journal des transactions d'une base de données

Dans un console SQL Server executer la procedure stockée système suivante:

DBCC SHRINKFILE(toto_log, 200) DBCC SHRINKFILE(toto_dat, 200)

Ou toto_log est le fichier des transactions de la base toto. Ou toto_dat est le fichier data de la base toto. Ou 200 (200Mega) est la taille finale que l'on souhaite avoir.
Attention, à ce qu'une table ne soit pas accéssible en insertion, car la table se retrouve bloquée et le process échoue.

mercredi, mai 31 2006

Sql Server :: Convertir des données monétaires en NVARCHAR

SELECT CONVERT(NVARCHAR,CAST(0.02 AS money))

mercredi, mai 24 2006

Mysql :: Dumper une base de données

Pour dumper toutes les bases de données MYSQL dans un fichier sous bash :

mysqldump --all-databases > all_databases.sql
Pour importer toutes les bases :

mysql --user=utilisateur --password=motdepasse < all_databases.sql

N'oublier pas de reload mysql. Pour importer juste une base :

shell> mysql db_name < backup-file.sql
Dumper une base d'un serveur à un autre:

mysqldump --opt NOM_BASE -u root -pPASSWORD | mysql -u USER_DISTANT -pPASSWORD_USER_DISTANT --host=192.168.1.100 -C NOM_BASE_DISTANTE

mercredi, mai 10 2006

Nombre de jours dans le mois :: SQL Server

Voici une petite fonction qui retourne le nombre de jours dans le mois sous SQL Server.



set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[nombre_de_jour_mois] ( @mois INT, @annee INT ) RETURNS INT AS BEGIN DECLARE @Result_Nb_Jour INT SET @Result_Nb_Jour=0 --Les mois à 30 jours SELECT @mois=CASE WHEN @mois=4 THEN 30 WHEN @mois=6 THEN 30 WHEN @mois=9 THEN 30 WHEN @mois=11 THEN 30 ELSE @mois END --Le mois de fevrier: IF (@mois=2) BEGIN IF (@annee % 4 =0) AND (@annee % 100 <> 0) OR (@annee % 400 = 0) BEGIN SET @mois = 29 END ELSE BEGIN SET @mois=28 END END --Les autres mois : SELECT @mois=CASE WHEN @mois=1 THEN 31 WHEN @mois=3 THEN 31 WHEN @mois=5 THEN 31 WHEN @mois=7 THEN 31 WHEN @mois=8 THEN 31 WHEN @mois=10 THEN 31 WHEN @mois=12 THEN 31 ELSE @mois END SET @Result_Nb_Jour=@mois RETURN @Result_Nb_Jour END

mercredi, mai 3 2006

Supprimer le dernier caractère dans une chaine SQL Server :: SQL SERVER (Stored Procedure or function)


IF(LEN(@Concat)>0)
BEGIN
SET @Concat = LEFT(@Concat, (LEN(@Concat)-1))
END

vendredi, avril 28 2006

Concatener les resultats d'un champs sur un select à la volée :: SQL SERVER


DECLARE @Colonne varchar(8000) SET @Colonne = '' SELECT @Colonne = @Colonne +COALESCE(TABLE_NAME + ', ', '') FROM INFORMATION_SCHEMA.TABLES

samedi, avril 22 2006

SQL Server EXPRESS : provider: Named Pipes Provider, error: 0 - Il n'y a pas de processus à l'autre extrémité du canal

Vous vous connecter à SQL SERVER EXPRESS et vous avez le message suivant:
A connection was successfully established with the server, but then an error occurred during the login process.
(provider: Named Pipes Provider, error: 0 - Il n'y a pas de processus à l'autre extrémité du canal.) (.Net SqlClient Data Provider)

Il vous faut activer le mode de connection SQL Server.
Pour se faire ouvrer un SQL SERVER MANAGEMENT EXPRESS (google).
Connecter le serveur en mode WINDOWS CONNECTION
A la racine de l'arbo. Clicker droit propriété
Dans la fenêtre Selectionnez Securité

Cocher la case SQL SERVER AND WINDOWS AUTHENTIFICATION MODE.
Redemarrer le serveur SQL EXPRESS :

NET STOP MSSQL$SQLEXPRESS
NET START MSSQL$SQLEXPRESS


!!!!!! ATTENTION LORSQUE VOUS CONNECTER UNE BASE DE DONNEES SQL SERVER EXPRESS, DANS LA ZONE NOM DU SERVEUR IL FAUT RENSEIGNER : localhost\SQLEXPRESS !!!!!!

MDAC SQL SERVER

Si vous utilisez SQL SERVER 2005 et si vous développer sous dot.net ou ASP, je vous conseil d'installer les driver MDAC
(Microsoft Data Access Components), la version a l'heure ou j'écris ce contenu est la 2.8, so google :-)

page 2 de 2 -