SET FMTONLY (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric
Retorna apenas metadados ao cliente. Pode ser usado para testar o formato da resposta sem realmente executar a consulta.
Observação
Não use este recurso. Esse recurso foi substituído por um dos seguintes itens:
Convenções de sintaxe de Transact-SQL
Sintaxe
SET FMTONLY { ON | OFF }
Comentários
Quando FMTONLY
é ON
, um conjunto de linhas é retornado com os nomes de coluna, mas sem nenhuma linha de dados.
SET FMTONLY ON
não tem nenhum efeito quando o lote Transact-SQL é analisado. O efeito ocorre durante a execução do tempo de execução.
O valor padrão é OFF
.
Permissões
Requer associação à função public.
Exemplos
O exemplo de código Transact-SQL a seguir define FMTONLY
como ON
. Essa configuração faz com que o SQL Server retorne apenas as informações de metadados sobre as colunas selecionadas. Especificamente, os nomes de coluna são retornados. Nenhuma linha de dados é retornada.
No exemplo, a execução de teste do procedimento armazenado prc_gm29
retorna o seguinte:
- Vários conjuntos de linhas.
- Colunas de várias tabelas em uma de suas instruções
SELECT
.
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\]
>>
****/