SET FMTONLY (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Platform System (PDW) SQL Analytics Platform-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric Warehouse
Gibt nur Metadaten an den Client zurück. Kann verwendet werden, um das Format der Antwort zu testen, ohne die Abfrage tatsächlich auszuführen.
Hinweis
Verwenden Sie diese Funktion nicht. Diese Funktion wurde durch folgende Elemente ersetzt:
Transact-SQL-Syntaxkonventionen
Syntax
SET FMTONLY { ON | OFF }
Hinweise
Wenn FMTONLY
auf ON
gesetzt ist, wird ein Rowset mit den Spaltennamen zurückgeben, jedoch ohne jegliche Datenzeilen.
SET FMTONLY ON
hat beim Analysieren des Transact-SQL-Batches keine Auswirkungen. Der Wirkung tritt während der Ausführungslaufzeit auf.
Standardwert: OFF
.
Berechtigungen
Erfordert die Mitgliedschaft in der public-Rolle.
Beispiele
Im folgenden Transact-SQL-Codebeispiel wird FMTONLY
auf ON
gesetzt. Aufgrund dieser Einstellung gibt SQL Server nur Metadateninformationen zu den ausgewählten Spalten zurück. Insbesondere die Spaltennamen werden zurückgegeben. Es werden keine Datenzeilen zurückgegeben.
Im Beispiel gibt die Testausführung der gespeicherten Prozedur prc_gm29
Folgendes zurück:
- Mehrere Rowsets
- Spalten aus mehreren Tabellen in einer ihrer
SELECT
-Anweisungen
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\]
>>
****/