Aracılığıyla paylaş


NOEXEC SETI (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Her sorguyu derler ama çalıştırmaz.

Transact-SQL söz dizimi kuralları

Sözdizimi

  
SET NOEXEC { ON | OFF }  

Açıklamalar

SET NOEXEC AÇIKSA, SQL Server her Transact-SQL ifadesi partisini ayrıştırır ve derler ancak onları çalıştırmaz. SET NOEXEC KAPALı olduğunda, tüm gruplar derlemeden sonra çalıştırılır. NOEXEC, ertelenmiş isim çözümlemesini destekler; Eğer toplu bir veya daha fazla referans alan nesne yoksa, hata atılmaz.

SQL Server'da ifadelerin yürütülmesi iki aşamadan oluşur: derleme ve yürütme. Bu ayar, SQL Server'ın çalıştırılırken Transact-SQL koddaki sözdizimi ve nesne isimlerini doğrulaması için faydalıdır. Ayrıca, genellikle daha büyük bir ifade grubunun parçası olan ifadeleri hata ayıklamak için de faydalıdır.

SET NOEXEC ayarı işleme veya çalışma zamanında ayarlanır, ayrıştırma zamanında değil.

Permissions

Genel rolde üyelik gerektirir.

Örnekler

Aşağıdaki örnek, geçerli bir sorgu, geçerli olmayan bir nesne adı olan bir sorgu ve yanlış sözdizimi olan bir sorgu ile kullanılır NOEXEC .

USE AdventureWorks2022;  
GO  
PRINT 'Valid query';  
GO  
-- SET NOEXEC to ON.  
SET NOEXEC ON;  
GO  
-- Inner join.  
SELECT e.BusinessEntityID, e.JobTitle, v.Name  
FROM HumanResources.Employee AS e   
   INNER JOIN Purchasing.PurchaseOrderHeader AS poh  
   ON e.BusinessEntityID = poh.EmployeeID  
   INNER JOIN Purchasing.Vendor AS v  
   ON poh.VendorID = v.BusinessEntityID;  
GO  
-- SET NOEXEC to OFF.  
SET NOEXEC OFF;  
GO  
  
PRINT 'Invalid object name';  
GO  
-- SET NOEXEC to ON.  
SET NOEXEC ON;  
GO  
-- Function name used is a reserved keyword.  
USE AdventureWorks2022;  
GO  
CREATE FUNCTION dbo.Values(@BusinessEntityID int)  
RETURNS TABLE  
AS  
RETURN (SELECT PurchaseOrderID, TotalDue  
   FROM dbo.PurchaseOrderHeader  
   WHERE VendorID = @BusinessEntityID);  
  
-- SET NOEXEC to OFF.  
SET NOEXEC OFF;  
GO  
  
PRINT 'Invalid syntax';  
GO  
-- SET NOEXEC to ON.  
SET NOEXEC ON;  
GO  
-- Built-in function incorrectly invoked.  
SELECT *  
FROM fn_helpcollations;  
-- Reset SET NOEXEC to OFF.  
SET NOEXEC OFF;  
GO  

Ayrıca Bkz.

SET Deyimleri (Transact-SQL)
SET SHOWPLAN_ALL (Transact-SQL)
SET SHOWPLAN_TEXT (Transact-SQL)