Delen via


SET NOEXEC (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Compileert elke query maar voert deze niet uit.

Transact-SQL syntaxis-conventies

Syntaxis

  
SET NOEXEC { ON | OFF }  

Opmerkingen

Wanneer SET NOEXEC AAN staat, parselt en compileert SQL Server elke batch van Transact-SQL instructies, maar voert ze niet uit. Wanneer SET NOEXEC UIT is, worden alle batches na compilatie uitgevoerd. NOEXEC ondersteunt de resolutie van uitgestelde naam; Als één of meer gerefereerde objecten in de batch niet bestaan, wordt er geen foutmelding gegeven.

De uitvoering van statements in SQL Server kent twee fasen: compilatie en uitvoering. Deze instelling is handig zodat SQL Server de syntaxis en objectnamen in Transact-SQL code valideert tijdens het uitvoeren. Het is ook nuttig voor het debuggen van statements die doorgaans deel uitmaken van een grotere batch statements.

De instelling van SET NOEXEC wordt ingesteld tijdens execute- of runtime en niet tijdens parsetijd.

Permissions

Vereist lidmaatschap van de openbare rol.

Voorbeelden

Het volgende voorbeeld gebruikt NOEXEC met een geldige query, een query met een objectnaam die niet geldig is, en een query met onjuiste syntaxis.

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  

Zie ook

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