ZESTAW NOEXEC (Transact-SQL)

Skompiluje każdej kwerendy ale nie nie wykonać go.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

SET NOEXEC { ON | OFF }

Uwagi

Gdy ustawienie NOEXEC jest włączone, SQL Server kompiluje każdej partia Transact-SQL instrukcji ale jest wykonać ich.Po NOEXEC USTAWIONA jest wyłączona, wszystkie instancje są wykonywane po kompilacji.

Wykonanie instrukcji w SQL Server ma dwie fazy: opracowanie i wykonanie.To ustawienie jest użyteczne w przypadku posiadające SQL Server Sprawdź poprawność nazwy składni i obiektów w Transact-SQL kodu podczas wykonywania.Jest także przydatny podczas debugowania sprawozdania, które ogólnie są częścią większego partia sprawozdania.

Ustawienie ustawianie NOEXEC jest zestaw na wykonać lub czas jednostkowy i nie analizować czas.

Uprawnienia

Wymaga członkostwa w public rolę.

Przykłady

W poniższym przykładzie użyto NOEXEC z prawidłowej kwerendy, kwerenda o nazwę obiektu, który jest nieprawidłowy i kwerendy z niepoprawną składnię.

USE AdventureWorks2008R2;
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 AdventureWorks2008R2;
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