Получить текущее t- sql имя процедуры - PullRequest
0 голосов
/ 10 июля 2020

У меня есть несколько процедур t- sql с такими именами, как Test; 1, Test; 2, Test; 3 et c.

CREATE PROCEDURE [dbo].[Test] ; 1
AS
BEGIN
  SELECT
    OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID)

  SET NOCOUNT ON;
END
GO

CREATE PROCEDURE [dbo].[Test] ; 2
AS
BEGIN
  SELECT
    OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID)

  SET NOCOUNT ON;
END
GO

Это какой-либо способ получить полное имя процедуры с помощью это версия?

1 Ответ

1 голос
/ 10 июля 2020

Вы можете получить эту информацию из sys.numbered_procedures . Вы можете фильтровать на основе object_id, и он возвращает номер процедуры. Чтобы получить имя процедуры, вы используете те же функции, которые вы уже используете. Это также возвращает код T- SQL, если вы этого хотите.

Вы также захотите использовать sys.numbered_procedures_parameters , чтобы получить информацию о параметрах для этих типов процедур . Это необходимо, так как они также могут иметь разные параметры.

Кстати, нумерованные процедуры являются устаревшей функциональностью. Таким образом, его не рекомендуется использовать. Кроме того, он не будет работать с новыми функциями, такими как операторы CREATE OR ALTER. Я бы настоятельно предостерегал от использования пронумерованных процедур.

...