SET FMTONLY (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Hanya mengembalikan metadata ke klien. Dapat digunakan untuk menguji format respons tanpa benar-benar menjalankan kueri.

Konvensi sintaks transact-SQL

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\]
>>
****/

Lihat Juga

Pernyataan SET (Transact-SQL)