Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Compileert elke query maar voert deze niet uit.
Transact-SQL syntaxis-conventies
Syntaxis
SET NOEXEC { ON | OFF }
Opmerkingen
Wanneer SET NOEXEC AAN staat, parselt en compileert SQL Server elke batch van Transact-SQL instructies, maar voert ze niet uit. Wanneer SET NOEXEC UIT is, worden alle batches na compilatie uitgevoerd. NOEXEC ondersteunt de resolutie van uitgestelde naam; Als één of meer gerefereerde objecten in de batch niet bestaan, wordt er geen foutmelding gegeven.
De uitvoering van statements in SQL Server kent twee fasen: compilatie en uitvoering. Deze instelling is handig zodat SQL Server de syntaxis en objectnamen in Transact-SQL code valideert tijdens het uitvoeren. Het is ook nuttig voor het debuggen van statements die doorgaans deel uitmaken van een grotere batch statements.
De instelling van SET NOEXEC wordt ingesteld tijdens execute- of runtime en niet tijdens parsetijd.
Permissions
Vereist lidmaatschap van de openbare rol.
Voorbeelden
Het volgende voorbeeld gebruikt NOEXEC met een geldige query, een query met een objectnaam die niet geldig is, en een query met onjuiste syntaxis.
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
Zie ook
SET-instructies (Transact-SQL)
SET SHOWPLAN_ALL (Transact-SQL)
SET SHOWPLAN_TEXT (Transact-SQL)