SQL Server сочетает в себе CREATE / ALTER и EXEC

Когда вы получите сообщение об ошибке, и вы получите сообщение в SSMS с указанием строки кода, вам нужно будет найти содержимое этой строки.

Но я наткнулся на ошибку. Если вы запустите следующий код на SQL Server, вы получите вызов рекурсивной функции. Похоже, что ALTER принимает EXEC как часть хранимой процедуры, даже если это после строки AS BEGIN … END.

ALTER PROCEDURE SP_GetErrorLine( @lineNum INT, @spName NVARCHAR(250) ) AS BEGIN SET NOCOUNT ON CREATE TABLE #spLine ( line INT NOT NULL IDENTITY(1,1), Bob NVARCHAR(2048) NOT NULL ) INSERT INTO #spLine (Bob) EXEC sp_helptext @spName DECLARE @line NVARCHAR(2048) SELECT @line=Bob FROM #spLine WHERE [email protected] DROP TABLE #spLine; SELECT @lineNum AS [Line No.], LTRIM(RTRIM(@line)) AS [SP Line] END EXEC SP_GetErrorLine 67, 'SP_AnotherProcedure' 

(Вам нужно запустить его с заменой SP_AnotherProcedure на любую другую хранимую процедуру, имеющуюся в той же БД).

Является ли это ожидаемым поведением или неправильным анализом кода?

ура

BEGIN / END не является терминатором партии. То, что вы испытываете, – это именно то, как оно должно себя вести. Если вы хотите иметь несколько сценариев, вам нужно поставить разделитель партии между партиями. Серийный разделитель по умолчанию – GO.

При этом вы можете иметь любое количество блоков BEGIN / END в одной партии. Настоящий трюк не путает партию с блоком.

  • Ошибка преобразования NTEXT & nvarchar (255) в nvarchar (max)
  • Несколько предикатов безопасности (FILTER | BLOCK) на одной таблице
  • Логирование между SQL Server 2008 R2 (Clustered Instance) и SQL Server 2012 SP3 Всегда на экземпляре
  • Комплексное обновление SQL на 2 взаимозависимых таблицах
  • SQL Query - Pivot Grouping или любая концепция для получения таблицы результатов
  • Функция DATEDIFF привела к переполнению в SQL Server 2016
  • Подключить AnyLogic к локальному серверу SQL Server
  • SQL Server 2016 - Динамическая маска данных (DDM)
  • Entity Framework не работает с временной таблицей
  • Удаление объекта из вложенного массива в openjson SQL Server 2016
  • Опускать дубликаты только в последовательном порядке
  • Interesting Posts

    Обновление от внутреннего соединения

    Выбрать последние продукты всех продаж в SQL Server

    Можно ли это упростить в простом заявлении?

    Незначительный результат возврата с сервера sql

    Как использовать Xquery в Sql Server для поиска символа в столбце, в котором хранятся XML-данные

    SQL Query Help после 13-й строки Динамические и статические значения 12-й строки с формулой

    Как изменить таблицу для добавления значения по умолчанию в столбец

    Лучший способ обрезать XML-данные в столбцах базы данных SQL Server

    MAX / ORDER BY по столбцу char

    Как выбрать более одного уникального идентификатора?

    Профайлер SQL Server: захватывает вызовы хранимых процессов вашей базы данных во время генерации отчета SSRS

    SQL: нужны ли нам ЛЮБЫЕ / НЕКОТОРЫЕ и ВСЕ ключевые слова?

    Синтаксис Ошибка при отображении ошибки Описание

    Различия в производительности, вызывающие sp_executesql с динамическими параметрами SQL vs

    Суммирование значений из 2-й таблицы на основе идентификатора 1-й таблицы

    Давайте будем гением компьютера.