Udostępnij za pośrednictwem


zestaw NOEXEC (języka Transact-SQL)

Kompiluje każdej kwerendy, ale nie wykonać go.

Topic link iconKonwencje składni języka Transact-SQL

SET NOEXEC { ON | OFF }

Remarks

Kiedy NOEXEC zestaw jest włączone, SQL Server kompiluje każdej partia Transact-SQL instrukcje, ale nie wykonuje je. Gdy NOEXEC zestaw jest wyłączona, wszystkie instancje są wykonywane po kompilacji.

Wykonanie instrukcji w SQL Server składa się z dwóch etapów: opracowanie i wykonywanie. To ustawienie jest użyteczne w przypadku potrzeby SQL Server Sprawdź poprawność nazwy składni i obiekt w Transact-SQL Kod podczas wykonywania. Jest również przydatna podczas debugowania instrukcji, które zazwyczaj są częścią większego partia instrukcji.

Ustawiono zestaw NOEXEC na wykonać lub uruchomić czas, a nie w czasie analizowania.

Uprawnienia

Członkostwo w grupie wymaga publiczne roli.

Przykłady

W poniższym przykładzie użyto NOEXEC z prawidłowej kwerendy, kwerendę za pomocą nazwy obiektu, który nie jest prawidłowy i kwerendy o nieprawidłowej składni.

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