SET FMTONLY (Transact-SQL)SET FMTONLY (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database ouiAzure SQL Data Warehouse ouiParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Retourne uniquement des métadonnées au client.Returns only metadata to the client. Peut être utilisé pour tester le format de la réponse sans avoir à exécuter la requête.Can be used to test the format of the response without actually running the query.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

SET FMTONLY { ON | OFF }   

NotesRemarks

Quand FMTONLY est ON, un ensemble de lignes est retourné avec les noms des colonnes, mais sans ligne de données.When FMTONLY is ON, a rowset is returned with the column names, but without any data rows.

SET FMTONLY ON n’a aucun effet quand le lot Transact-SQL est analysé.SET FMTONLY ON has no effect when the Transact-SQL batch is parsed. L’effet se produit pendant l’exécution.The effect occurs during execution run time.

La valeur par défaut est OFF.The default value is OFF.

AutorisationsPermissions

Nécessite l'appartenance au rôle public.Requires membership in the public role.

ExemplesExamples

L’exemple de code Transact-SQL suivant affecte la valeur ON à FMTONLY.The following Transact-SQL code example sets FMTONLY to ON. Ce paramètre fait en sorte que SQL Server retourne uniquement les informations de métadonnées sur les colonnes sélectionnées.This setting causes SQL Server to return only metadata information about the selected columns. Plus précisément, les noms de colonnes sont retournés.Specifically, the column names are returned. Aucune ligne de données n’est retournée.No data rows are returned.

Dans l’exemple, l’exécution test de la procédure stockée prc_gm29 retourne ce qui suit :In the example, the test execution of stored procedure prc_gm29 returns the following:

  • Plusieurs ensembles de lignesMultiple rowsets.
  • Colonnes de plusieurs tables, dans l’une de ses instructions SELECT.Columns from multiple tables, in one of its SELECT statements.
go
SET NoCount ON;

go
DROP PROCEDURE IF EXISTS prc_gm29;

DROP Table IF EXISTS #tabTemp41;
DROP Table IF EXISTS #tabTemp42;
go

CREATE TABLE #tabTemp41
(
   KeyInt41        int           not null,
   Name41          nvarchar(16)  not null,
   TargetDateTime  datetime      not null  default GetDate()
);

CREATE TABLE #tabTemp42
(
   KeyInt42 int          not null,   -- JOIN-able to KeyInt41.
   Name42   nvarchar(16) not null
);
go

INSERT into #tabTemp41 (KeyInt41, Name41) values (10, 't41-c');
INSERT into #tabTemp42 (KeyInt42, Name42) values (10, 't42-p');
go

CREATE PROCEDURE prc_gm29
AS
begin
SELECT * from #tabTemp41;
SELECT * from #tabTemp42;

SELECT t41.KeyInt41, t41.TargetDateTime, t41.Name41, t42.Name42
   from
                 #tabTemp41 as t41
      INNER JOIN #tabTemp42 as t42 on t42.KeyInt42 = t41.KeyInt41
end;
go

SET DATEFORMAT mdy;

SET FMTONLY ON;
EXECUTE prc_gm29;   -- Returns multiple tables.
SET FMTONLY OFF;
go
DROP PROCEDURE IF EXISTS prc_gm29;

DROP Table IF EXISTS #tabTemp41;
DROP Table IF EXISTS #tabTemp42;
go

/****  Actual Output:
[C:\JunkM\]
>> osql.exe -S myazuresqldb.database.windows.net -U somebody -P secret -d MyDatabase -i C:\JunkM\Issue-2246-a.SQL 

 KeyInt41    Name41           TargetDateTime
 ----------- ---------------- -----------------------

 KeyInt42    Name42
 ----------- ----------------

 KeyInt41    TargetDateTime          Name41           Name42
 ----------- ----------------------- ---------------- ----------------


[C:\JunkM\]
>>
****/

Voir aussiSee Also

Instructions SET (Transact-SQL)SET Statements (Transact-SQL)