Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank in Microsoft Fabric
Alle Abfragen werden jeweils nur kompiliert, aber nicht ausgeführt.
Transact-SQL-Syntaxkonventionen
Syntax
SET NOEXEC { ON | OFF }
Hinweise
Wenn SET NOEXEC ON ist, parst und kompiliert SQL Server jeden Batch Transact-SQL Anweisungen, führt sie aber nicht aus. Wenn SET NOEXEC AUS ist, werden alle Batches nach der Kompilierung ausgeführt. NOEXEC unterstützt die Auflösung des aufgeschoben Namens; Wenn eines oder mehrere referenzierte Objekte im Batch nicht existieren, wird kein Fehler angezeigt.
Die Ausführung von Anweisungen in SQL Server erfolgt in zwei Phasen: Kompilierung und Ausführung. Diese Einstellung ist hilfreich, wenn SQL Server die Syntax und Objektnamen in Transact-SQL-Code während der Ausführung überprüfen soll. Sie ist auch hilfreich, um Anweisungen zu debuggen, die normalerweise Teil eines größeren Anweisungsbatches wären.
Die Einstellung wird SET NOEXEC zur Ausführung oder Laufzeit und nicht zur Analysezeit festgelegt.
Berechtigungen
Erfordert die Mitgliedschaft in der public-Rolle.
Beispiele
Im folgenden Beispiel wird NOEXEC mit einer gültigen Abfrage, einer Abfrage mit einem ungültigen Objektnamen und einer Abfrage mit fehlerhafter Syntax verwendet.
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
Weitere Informationen
SET Anweisungen (Transact-SQL)
SET SHOWPLAN_ALL (Transact-SQL)
SET SHOWPLAN_TEXT (Transact-SQL)