2009-09-15 6 views

Répondre

0

Dans SQL Server Management Studio 2008, vous pouvez faire un clic droit sur un volet de résultats et choisissez « Enregistrer les résultats sous ... » puis choisissez "CSV - fichier de valeurs séparées par des virgules".

Ce fichier CSV peut être facilement ouvert dans n'importe quelle version d'Excel. Dans SQL Server Management Studio (versions 2005 et ultérieures), vous pouvez également cliquer avec le bouton droit sur le volet de résultats, choisir "Sélectionner tout", puis sélectionner "Copier" et coller ces valeurs dans une feuille de calcul Excel ouverte.

Marc

+0

Dans ce cas, nous allons perdre des titres de colonnes. – Mahin

+1

Dans SQL Server Mgmt Studio 2008, il existe également une option "Copier avec les en-têtes" (pas en 2005, malheureusement) –

+1

Mais dans SQL Srv Mgmt Studio 2005, vous pouvez définir une option pour inclure les en-têtes dans vos opérations de copie –

1

Dans l'article SQlTip quelqu'un a suggéré la suite approach.You peut trouver l'article original here.

exportation de données SQL Server vers Excel peut être réalisé dans une variété de façons. Certaines de ces options incluent Data Transformation Services (DTS), SQL Server Integration Services (SSIS) et Bulk Copy (BCP). Les services de transformation de données (SQL Server 2000) et SQL Server Integration Services (SQL Server 2005) offrent une interface utilisateur graphique dans laquelle les widgets peuvent être déplacés. Chaque option présente des avantages et des inconvénients, mais tous peuvent faire l'affaire. C'est juste une question de votre niveau de confort avec les outils et la meilleure solution pour répondre au besoin.

Une autre option disponible directement via le langage T-SQL est la commande OPENROWSET (SQL Server 2000 et SQL Server 2005). Cette commande peut être appelée directement dans une procédure stockée, un script ou un travail SQL Server à partir de T-SQL. décrit ci-dessous la syntaxe complète disponible:

OPENROWSET 
({ 'provider_name' , { 'datasource' ; 'user_id' ; 'password' 
    | 'provider_string' } 
     , { [ catalog. ] [ schema. ] object 
     | 'query' 
    } 
    | BULK 'data_file' , 
     { FORMATFILE = 'format_file_path' [ <bulk_options> ] 
     | SINGLE_BLOB | SINGLE_CLOB | SINGLE_NCLOB } 
}) 
<bulk_options> ::= 
    [ , CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ] 
    [ , ERRORFILE = 'file_name' ] 
    [ , FIRSTROW = first_row ] 
    [ , LASTROW = last_row ] 
    [ , MAXERRORS = maximum_errors ] 
    [ , ROWS_PER_BATCH = rows_per_batch ] 

Source - SQL Server 2005 en ligne

est Ci-dessous un exemple simple d'écrire le nom de l'emploi et la date à Sheet1 d'une feuille de calcul Excel dans SQL Server 2005 ou 2000:

INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=C:\testing.xls;', 
'SELECT Name, Date FROM [Sheet1$]') 
SELECT [Name], GETDATE() FROM msdb.dbo.sysjobs 
GO 

L'utilisation de la commande OPENROWSET crée deux mises en garde. La première mise en garde est la nécessité d'avoir une feuille de calcul Excel servir de modèle dans le répertoire nécessaire avec les bonnes feuilles de travail et colonnes. Sans cela, vous recevrez un message d'erreur. La deuxième mise en garde est qu'il est nécessaire d'activer la commande OPENROWSET avec l'utilitaire de configuration de surface SQL Server 2005. Remarque - Cette étape n'est pas nécessaire pour SQL Server 2000. Avec l'exemple de boucle, vous pouvez copier et coller la feuille de calcul Excel et charger les données si nécessaire.

Bien que l'exemple ci-dessus soit très simple, vous pouvez intégrer cet exemple simple dans votre code. Par exemple, si vous avez besoin d'écrire un certain nombre de rapports dans le même format, vous pouvez boucler (WHILE loop ou Cursor) sur les enregistrements et les écrire dans différentes feuilles de calcul Excel en fonction du nom ou du type de rapport. En outre, vous pouvez intégrer ce code avec le courrier SQL Server 2000 ou le courrier de base de données (SQL Server 2005) et envoyer les résultats aux utilisateurs avec très peu d'efforts et créer le processus entièrement avec T-SQL.

+1

Je reçois '' 'Le fournisseur OLE DB "Microsoft.Jet.OLEDB.4.0" n'a pas été enregistré.' '' – Rick2047

0

La plupart des moteurs de base de données ont une option d'export-> export en tant que fichier CVS.

Excel est capable de lire les fichiers csv, et vous pouvez facilement convertir ce fichier csv en fichiers Excel en utilisant le bouton "enregistrer sous". Cependant, base de données comme mysql et directement sortie fichier Excel.

Si vous souhaitez générer un fichier Excel à partir de votre SQL, je vous suggère de sortir un fichier CSV de votre requête, et d'utiliser Excel après cela.

Questions connexes