Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment récupérer le resultat d'un requete dans un fichier

3 réponses
Avatar
Tatif 94
Je désire récupérer le résultat d'une requete sql dans un fichier sans pour
autant passer par osql

3 réponses

Avatar
Jean-Nicolas BERGER
L'analyseur de requête permet de faire sans sans problème... (voir le menu
Requête)
JN.


"Tatif 94" <Tatif a écrit dans le message de
news:
Je désire récupérer le résultat d'une requete sql dans un fichier sans
pour
autant passer par osql


Avatar
Philippe T [MS]
Bonjour,

En requête, il suffit d'utiliser :

DECLARE @EXECString nvarchar(4000)

SET @EXECString = 'osql -E -u -SMyServerName -dMyDatabaseName -s"|" -w50000
/Q"SET NOCOUNT ON;SELECT * FROM MYTABLE" -o C:Fichier.txt
EXEC master.dbo.xp_cmdshell @EXECString


----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"Jean-Nicolas BERGER" wrote in
message news:
L'analyseur de requête permet de faire sans sans problème... (voir le menu
Requête)
JN.


"Tatif 94" <Tatif a écrit dans le message de
news:
Je désire récupérer le résultat d'une requete sql dans un fichier sans
pour
autant passer par osql






Avatar
Philippe T [MS]
Bonjour,

J'aime bien aussi pouvoir écrire dans un fichier depuis une procédure
stockée :

<<<<
CREATE PROCEDURE tp_File_OpenFile
(
@FileName nvarchar(250), -- Name of the file to create
@FS int OUTPUT, -- File system object reference
@FileID int OUTPUT -- File id reference
)
AS
BEGIN
SET NOCOUNT ON

DECLARE @OLEResult int

-- Create scripting object
EXECUTE @OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FS OUT
IF @OLEResult <> 0 RETURN -1

--Ouvre le fichier (2 = ForWriting, 8 = ForAppending)
EXECUTE @OLEResult = sp_OAMethod @FS, 'OpenTextFile', @FileID OUT,
@FileName, 2, 1
IF @OLEResult <> 0 RETURN -1

END
GO

CREATE PROCEDURE tp_File_WriteFile
(
@FileID int, -- File id reference
@Text nvarchar(4000) -- Text to write
)
AS
BEGIN
SET NOCOUNT ON

DECLARE @OLEResult int

-- Write the text in the file
EXECUTE @OLEResult = sp_OAMethod @FileID, 'WriteLine', Null, @Text
IF @OLEResult <> 0 RETURN -1

END
GO

CREATE PROCEDURE tp_File_CloseFile
(
@FS int, -- File system object reference
@FileID int -- File id reference
)
AS
BEGIN
SET NOCOUNT ON

DECLARE @OLEResult int

-- Close file
EXECUTE @OLEResult = sp_OADestroy @FileID
EXECUTE @OLEResult = sp_OADestroy @FS

END
GO











Après, il suffit de faire :

DECLARE @FS int
DECLARE @FileID int

EXEC tp_File_OpenFile 'C:SQLtest.txt', @FS OUTPUT, @FileID OUTPUT

EXEC tp_File_WriteFile @FileID, '1. ceci est un test'
EXEC tp_File_WriteFile @FileID, '2. ceci est un autre test'

EXEC tp_File_CloseFile @FS, @FileID


----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"Tatif 94" <Tatif wrote in message
news:
Je désire récupérer le résultat d'une requete sql dans un fichier sans
pour
autant passer par osql