Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Kompiluje każde zapytanie, ale go nie wykonuje.
Transact-SQL konwencje składni
Składnia
SET NOEXEC { ON | OFF }
Uwagi
Gdy SET NOEXEC jest włączony, SQL Server analizuje i kompiluje każdą partię Transact-SQL instrukcji, ale ich nie wykonuje. Gdy USTAW NOEXEC jest WYŁĄCZONY, wszystkie partie są wykonywane po kompilacji. NOEXEC wspiera rozwiązywanie nazw odroczonych; Jeśli jeden lub więcej obiektów z odwołanymi w partii nie istnieje, nie zostanie wyrzucony żaden błąd.
Wykonywanie instrukcji w SQL Server składa się z dwóch faz: kompilacji i wykonania. To ustawienie jest przydatne, ponieważ SQL Server może weryfikować składnię i nazwy obiektów w Transact-SQL kodzie podczas uruchamiania. Jest również przydatny do debugowania instrukcji, które zazwyczaj byłyby częścią większej partii instrukcji.
Ustawienie SET NOEXEC jest ustawione na czas wykonania lub działania, a nie na czas parsowania.
Permissions
Wymaga członkostwa w roli publicznej.
Przykłady
Poniższy przykład używa NOEXEC z poprawnym zapytaniem, zapytania o nieprawidłowej nazwie obiektu oraz zapytania o nieprawidłowej składni.
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
Zobacz też
INSTRUKCJE SET (Transact-SQL)
ZESTAW SHOWPLAN_ALL (Transact-SQL)
ZESTAW SHOWPLAN_TEXT (Transact-SQL)