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

SE APLICA A: síSQL Server síAzure SQL Database síAzure Synapse Analytics (SQL DW) síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Devuelve solo metadatos al cliente.Returns only metadata to the client. Se puede usar para probar el formato de la respuesta sin ejecutar realmente la consulta.Can be used to test the format of the response without actually running the query.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

SET FMTONLY { ON | OFF }   

ObservacionesRemarks

Cuando FMTONLY se establece en ON, se devuelve un conjunto de filas con los nombres de columna, pero sin ninguna fila de datos.When FMTONLY is ON, a rowset is returned with the column names, but without any data rows.

SET FMTONLY ON no tiene ningún efecto cuando el lote de Transact-SQL se analiza.SET FMTONLY ON has no effect when the Transact-SQL batch is parsed. El efecto se produce en el tiempo de ejecución de la ejecución.The effect occurs during execution run time.

El valor predeterminado es OFF.The default value is OFF.

PermisosPermissions

Debe pertenecer al rol public.Requires membership in the public role.

EjemplosExamples

En el siguiente ejemplo de código de Transact-SQL, FMTONLY se establece en ON.The following Transact-SQL code example sets FMTONLY to ON. Esta configuración hace que SQL Server devuelva únicamente información de metadatos relativa a las columnas seleccionadas.This setting causes SQL Server to return only metadata information about the selected columns. En concreto, devuelve los nombres de columna.Specifically, the column names are returned. No se devuelve ninguna fila de datos.No data rows are returned.

En el ejemplo, la ejecución de prueba del procedimiento almacenado prc_gm29 devuelve lo siguiente:In the example, the test execution of stored procedure prc_gm29 returns the following:

  • Varios conjuntos de filas.Multiple rowsets.
  • Columnas de varias tablas, en una de sus instrucciones 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\]
>>
****/

Consulte tambiénSee Also

Instrucciones SET (Transact-SQL)SET Statements (Transact-SQL)