Azure sql database Azure SQL server中缺少存储过程sp_MShelpcolumns

Azure sql database Azure SQL server中缺少存储过程sp_MShelpcolumns,azure-sql-database,Azure Sql Database,我的问题 Azure SQL server中缺少存储过程[sys].[sp_MShelpcolumns] 我的查询 我们是否应该在Azure SQL Server上创建此SP 还是存在于其他名称或其他位置 或者我们在Azure SQL Server中是否有与am等效的SP 请建议一种方法来生成此缺失的系统存储过程 答案取决于你为什么想要它。这是一个非常旧的、未记录的存储过程,因此它没有在Azure Sql数据库中公开。如果要检查有关表中列的目录元数据,请使用 如果因为某个旧产品依赖于该存储过程而

我的问题

Azure SQL server中缺少存储过程[sys].[sp_MShelpcolumns]

我的查询

  • 我们是否应该在Azure SQL Server上创建此SP
  • 还是存在于其他名称或其他位置
  • 或者我们在Azure SQL Server中是否有与am等效的SP

  • 请建议一种方法来生成此缺失的系统存储过程

    答案取决于你为什么想要它。这是一个非常旧的、未记录的存储过程,因此它没有在Azure Sql数据库中公开。如果要检查有关表中列的目录元数据,请使用


    如果因为某个旧产品依赖于该存储过程而需要该存储过程,您可以尝试自己创建它。它只是一个构建在旧的目录视图上的存储过程,您可以从任何SQL实例编写脚本。请注意,您将无法在“sys”模式中创建它,因此,只有当客户端在没有模式限定的情况下执行它时(这可能是因为此过程早于“sys”模式的概念)。

    作为一种解决方法,您可以创建自己的存储过程,其中包含如下查询:

    SELECT tbl.table_schema + '.' + tbl.table_name as "TABLE_NAME", COLUMN_NAME AS [Output]
        ,ORDINAL_POSITION, col.*
        --,prop.value AS [COLUMN_DESCRIPTION]
    FROM INFORMATION_SCHEMA.TABLES AS tbl
    INNER JOIN INFORMATION_SCHEMA.COLUMNS AS col ON col.TABLE_NAME = tbl.TABLE_NAME
    INNER JOIN sys.columns AS sc ON sc.object_id = object_id(tbl.table_schema + '.' + tbl.table_name)     AND sc.NAME = col.COLUMN_NAME
    WHERE tbl.table_schema <> 'sys' and tbl.table_name = 'TableName'
    
    选择tbl.table_schema+”。+tbl.table_名称为“table_name”,列_名称为[Output]
    ,顺序位置,列*
    --,属性值为[列描述]
    来自信息\u SCHEMA.TABLES作为tbl
    内部联接信息\u SCHEMA.COLUMNS作为col.TABLE\u NAME=tbl.TABLE\u NAME上的col
    将sys.columns作为sc.object\u id=object\u id(tbl.table\u schema+'.+tbl.table\u name)和sc.name=col.COLUMN\u name上的sc进行内部连接
    其中tbl.table_架构'sys'和tbl.table_name='TableName'
    
    谢谢您的回复。我会尝试你的解决方案并让你知道。谢谢你的回复。对有一个旧产品依赖于此存储过程。我将按照建议尝试使用sys.columns。