Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Kompilerar varje fråga men kör den inte.
Transact-SQL syntaxkonventioner
Syntax
SET NOEXEC { ON | OFF }
Anmärkningar
När SET NOEXEC är PÅ parsar och kompilerar SQL Server varje batch av Transact-SQL satser men kör dem inte. När SET NOEXEC är AVSTÄNGT körs alla batcher efter kompilering. NOEXEC stöder uppskjuten namnupplösning; Om ett eller flera refererade objekt i batchen inte existerar, kommer inget felmeddelande att kastas.
Exekveringen av satser i SQL Server har två faser: kompilering och exekvering. Denna inställning är användbar för att låta SQL Server validera syntaxen och objektnamnen i Transact-SQL kod vid körning. Den är också användbar för att felsöka satser som vanligtvis ingår i en större batch av satser.
Inställningen för SET NOEXEC är inställd vid exekverings- eller körningstid och inte vid parsetid.
Permissions
Kräver medlemskap i den offentliga rollen.
Examples
Följande exempel använder NOEXEC med en giltig fråga, en fråga med ett objektnamn som inte är giltigt, och en fråga med felaktig syntax.
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
Se även
SET-instruktioner (Transact-SQL)
SET SHOWPLAN_ALL (Transact-SQL)
STÄLL SHOWPLAN_TEXT (Transact-SQL)