Поделиться через


SET NOEXEC (Transact-SQL)

Компилирует каждый запрос, но не выполняет его.

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

SET NOEXEC { ON | OFF }

Замечания

Если выполняется инструкция SET NOEXEC ON, то SQL Server 2005 компилирует каждый пакет инструкций языка Transact-SQL, но не выполняет их. Если выполняется инструкция SET NOEXEC OFF, то все пакеты выполняются после компиляции.

Выполнение инструкций в SQL Server происходит в два этапа: компиляция и выполнение. Этот параметр полезен для проверки синтаксиса и имен объектов SQL Server в исходном коде языка Transact-SQL при выполнении. Он также полезен для инструкций отладки, которые, как правило, являются частью более крупного пакета инструкций.

Параметр SET NOEXEC устанавливается на этапе выполнения или запуска, но не на этапе синтаксического анализа.

Разрешения

Необходимо членство в роли public.

Примеры

В следующем примере используется инструкция NOEXEC с корректным запросом, запрос с некорректным именем объекта и запрос с неверным синтаксисом.

USE AdventureWorks;
GO
PRINT 'Valid query';
GO
-- SET NOEXEC to ON.
SET NOEXEC ON;
GO
-- Inner join.
SELECT e.EmployeeID, e.Title, v.Name
FROM HumanResources.Employee e 
   INNER JOIN Purchasing.PurchaseOrderHeader poh
   ON e.EmployeeID = poh.EmployeeID
   INNER JOIN Purchasing.Vendor v
   ON poh.VendorID = v.VendorID;
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 AdventureWorks;
GO
CREATE FUNCTION dbo.Values(@EmployeeID INT)
RETURNS TABLE
AS
RETURN (SELECT PurchaseOrderID, TotalDue
   FROM dbo.PurchaseOrderHeader
   WHERE EmployeeID = @EmployeeID)
-- 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

См. также

Справочник

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

Справка и поддержка

Получение помощи по SQL Server 2005