我有几个相同的(据我所知)SQL Server,我最近在其中添加了 sp_WhoIsActive(向一些人展示了我有多喜欢这个工具),但其中一个不允许我创建存储过程。我收到一个我非常熟悉的错误,该错误涉及 CTE 需要前面的语句以分号结尾。其他服务器均未收到此错误。
我将脚本归结为以下内容以重新创建问题:
SET QUOTED_IDENTIFIER ON;
SET ANSI_PADDING ON;
SET CONCAT_NULL_YIELDS_NULL ON;
SET ANSI_WARNINGS ON;
SET NUMERIC_ROUNDABORT OFF;
SET ARITHABORT ON;
GO
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'sp_WhoIsActive')
EXEC ('CREATE PROC dbo.sp_WhoIsActive AS SELECT ''stub version, to be replaced''')
GO
ALTER PROC dbo.sp_WhoIsActive
(
@filter sysname = ''
)
AS
BEGIN;
SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET QUOTED_IDENTIFIER ON;
SET ANSI_PADDING ON;
SET CONCAT_NULL_YIELDS_NULL ON;
SET ANSI_WARNINGS ON; …
Run Code Online (Sandbox Code Playgroud)