sql-server - 获取当前 t-sql 过程名称
问题描述
我有几个 t-sql 程序,名称如 Test;1、Test;2、Test;3 等。
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
这是用它的版本获得完整过程名称的任何方式吗?
解决方案
您可以从sys.numbered_procedures检索该信息。您可以根据 object_id 进行过滤,它会返回过程编号。要获取过程名称,请使用已在使用的相同函数。如果需要,它还会返回 T-SQL 代码。
您还需要使用sys.numbered_procedures_parameters来获取有关这些类型过程的参数的信息。这是必要的,因为它们也可以有不同的参数。
顺便说一句,编号的过程是不推荐使用的功能。因此,不建议使用它。此外,它不适用于更新的功能,例如 CREATE OR ALTER 语句。我强烈警告不要使用编号程序。
推荐阅读
- python - 使用 VGG19 定制 CNN
- ios - 按需资源是否允许存档文件?
- python - 将 PIL 图像转换为 base64 的更快方法
- google-maps - 如何在 JavaScript 中的两点之间画线 - Google Maps Api Route
- javascript - 如何使用 c# 从 fcm 向安卓、ios 和 web 发送推送通知
- wordpress - 我想以轮播风格显示我的自定义插件的图像
- python - 在没有服务器的情况下运行 Django
- connection - 如何解决 ConnectionRefusedError: [Errno 111] Connection denied
- python-3.x - 如何用条件填充熊猫中的空单元格值
- python - 加速 pandas 上的复杂函数