SET NOEXEC (Transact-SQL)SET NOEXEC (Transact-SQL)

SI APPLICA A: sìSQL Server sìDatabase SQL di Azure noAzure SQL Data Warehouse noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Compila le varie query senza eseguirle.Compiles each query but does not execute it.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

  
SET NOEXEC { ON | OFF }  

RemarksRemarks

Quando l'opzione SET NOEXEC è impostata su ON, SQL ServerSQL Server compila, ma non esegue, tutti i batch delle istruzioni Transact-SQLTransact-SQL.When SET NOEXEC is ON, SQL ServerSQL Server compiles each batch of Transact-SQLTransact-SQL statements but does not execute them. Quando l'opzione è impostata su OFF, tutti i batch vengono eseguiti dopo la compilazione.When SET NOEXEC is OFF, all batches are executed after compilation.

L'esecuzione di istruzioni in SQL ServerSQL Server è composta da due fasi: compilazione ed esecuzione.The execution of statements in SQL ServerSQL Server has two phases: compilation and execution. Tale impostazione risulta utile per consentire la convalida in SQL ServerSQL Server della sintassi e dei nomi di oggetto nel codice Transact-SQLTransact-SQL in fase di esecuzione.This setting is useful for having SQL ServerSQL Server validate the syntax and object names in Transact-SQLTransact-SQL code when executing. Risulta utile inoltre per il debug di istruzioni che normalmente fanno parte di un batch di istruzioni più esteso.It is also useful for debugging statements that would generally be part of a larger batch of statements.

L'opzione SET NOEXEC viene impostata in fase di esecuzione, non in fase di analisi.The setting of SET NOEXEC is set at execute or run time and not at parse time.

AutorizzazioniPermissions

È richiesta l'appartenenza al ruolo public.Requires membership in the public role.

EsempiExamples

Nell'esempio seguente viene utilizzata l'opzione NOEXEC con una query valida, una query che include un nome di oggetto non valido e una query con sintassi non corretta.The following example uses NOEXEC with a valid query, a query with an object name that is not valid, and a query with incorrect syntax.

USE AdventureWorks2012;  
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 uses is a reserved keyword.  
USE AdventureWorks2012;  
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  

Vedere ancheSee Also

Istruzioni SET (Transact-SQL) SET Statements (Transact-SQL)
SET SHOWPLAN_ALL (Transact-SQL) SET SHOWPLAN_ALL (Transact-SQL)
SET SHOWPLAN_TEXT (Transact-SQL)SET SHOWPLAN_TEXT (Transact-SQL)