Aracılığıyla paylaş


SET FMTONLY (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

İstemciye sadece meta veri döner. Soruyu gerçekten çalıştırmadan yanıtın formatını test etmek için kullanılabilir.

Transact-SQL söz dizimi kuralları

Sözdizimi

SET FMTONLY { ON | OFF }   

Açıklamalar

Ne FMTONLY zaman ON, sütun isimleriyle birlikte bir satır kümesi döner, ancak veri satırları olmadan.

SET FMTONLY ON Transact-SQL partisi ayrıştırıldığında hiçbir etkisi olmaz. Bu etki, yürütme çalışma süresinde gerçekleşir.

Varsayılan değer şudur: OFF.

Permissions

Genel rolde üyelik gerektirir.

Örnekler

Aşağıdaki Transact-SQL kod örneği FMTONLY .ON Bu ayar, SQL Server'ın yalnızca seçilen sütunlara dair meta veri bilgisini döndürmesine neden olur. Özellikle, sütun adları geri döner. Veri satırları geri dönmez.

Örnekte, saklanan prosedürün prc_gm29 test yürütülmesi aşağıdaki sonuçları verir:

  • Birden fazla sıra seti.
  • Birden fazla tablodan sütunlar, bir ifadesinde 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\]
>>
****/

Ayrıca Bkz.

SET Deyimleri (Transact-SQL)