SET FMTONLY (Transact-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Hanya mengembalikan metadata ke klien. Dapat digunakan untuk menguji format respons tanpa benar-benar menjalankan kueri.
Catatan
Jangan gunakan fitur ini. Fitur ini telah digantikan oleh item berikut:
Sintaks
SET FMTONLY { ON | OFF }
Keterangan
Ketika FMTONLY
adalah ON
, set baris dikembalikan dengan nama kolom, tetapi tanpa baris data apa pun.
SET FMTONLY ON
tidak berpengaruh ketika batch Transact-SQL diurai. Efeknya terjadi selama run time eksekusi.
Nilai defaultnya adalah OFF
.
Izin
Memerlukan keanggotaan dalam peran publik.
Contoh
Contoh kode Transact-SQL berikut diatur FMTONLY
ke ON
. Pengaturan ini menyebabkan SQL Server hanya mengembalikan informasi metadata tentang kolom yang dipilih. Secara khusus, nama kolom dikembalikan. Tidak ada baris data yang dikembalikan.
Dalam contoh, eksekusi pengujian prosedur prc_gm29
tersimpan mengembalikan hal berikut:
- Beberapa set baris.
- Kolom dari beberapa tabel, dalam salah satu pernyataannya
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\]
>>
****/