【问题标题】:Save Metadata about columns of a table when creating It in SQL Server在 SQL Server 中创建表时保存有关表列的元数据
【发布时间】:2016-03-07 20:40:45
【问题描述】:

我正在创建一个从数据库创建 POCO 类的工具

我希望该工具能够将数据注释添加到以波斯语创建的类属性中,我可以在 ErrorMessages 或我的 Views 中使用这些属性...

我想知道在使用TSQL 在 sql server 中创建表时,是否有任何方法可以在 sys Tables or etc 中保存有关表列的元数据,所以当我创建表时,我可以将它的波斯名称保存在一些我可以使用information_schema等方式进一步检索的元数据

为了更清楚,假设我有以下创建表格的脚本:

create table dbo.Personnel
(
    ID      uniqueidentifier not null,
    Name    nvarchar(50)     not null
)

我想要的是存储有关表名和列名的元数据,这将是他们在波斯语中的名称!

例如波斯语中的表名是:'کارکنان'

列名是:'شناسه' 和 'نام'

一种简单的方法是我创建一个我自己的表来存储所有表和列名及其波斯语等效项,并在创建每个表后将元数据插入到该表中,在我的工具中我可以使用information_schema 加入它们!

但是

在进行此类自定义之前,我想知道 sqlserver 本身是否支持通过其自己的 sys 表或其他任何我不知道的方式来存储此类元数据!

提前致谢

【问题讨论】:

  • 目前尚不清楚您要做什么,但我认为您应该看看“扩展属性”。您可以添加所需的任何属性,并为这些属性添加值。
  • @SeanLange 我编辑了我的问题并为它添加了更多解释。
  • 正如 Sean 所说,查看here 了解有关扩展属性的信息。

标签: sql sql-server tsql metadata


【解决方案1】:

你可以为表和列。

EXEC sys.sp_addextendedproperty @name=N'PersianName', @value=N' ''کارکنان'' ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Personnel'


EXEC sys.sp_addextendedproperty @name=N'PersianColumnName', @value=N' ''شناسه''' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Personnel', @level2type=N'COLUMN',@level2name=N'Name'

【讨论】:

  • 谢谢,以及如何使用 tsql 检索扩展属性及其值的任何建议?
  • @Karamafrooz 没问题。一个公认的答案值得吗? ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-25
  • 1970-01-01
相关资源
最近更新 更多