首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL ms_description等效?

PostgreSQL ms_description等效?
EN

Stack Overflow用户
提问于 2015-10-06 18:25:00
回答 2查看 210关注 0票数 1

我是PostgreSQL的新手。我正在进行一个将MSSQL数据库转换为PostgreSQL的项目。现在,我们所有的表和列都是使用扩展属性( extended,MS_Description)记录的。我希望能够保留所有这些描述,但似乎无法找到将这些描述转换为PostgreSQL的方法。对我怎么做有什么想法吗?我总是可以将信息转储到数据字典表中,但不希望将信息与实际的表/列分开。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-06 18:44:51

使用评语命令,例如:

代码语言:javascript
复制
comment on table test is 'My favotite table';
comment on column test.id is 'Primary key of my favorite table';

要在SQL中检索这些注释,请使用函数(请参阅表9-60评论信息功能):

代码语言:javascript
复制
select obj_description('test'::regclass, 'pg_class');
  obj_description  
-------------------
 My favotite table
(1 row)

select col_description('test'::regclass, 1);
         col_description          
----------------------------------
 Primary key of my favorite table
(1 row)
票数 2
EN

Stack Overflow用户

发布于 2015-10-07 21:02:44

对于其他需要这样做的人,下面是我根据@klin的答案编写的脚本,以从MS获取描述并创建所需的PostgreSQL命令。第一个选择构建表描述,第二个构建列描述:

代码语言:javascript
复制
SELECT N'comment on table '+ Lower(o1.[name]) 
    + N' is ''' + CAST(s1.value AS NVARCHAR(4000)) + ''';'
FROM sys.objects o1 
    INNER JOIN sys.extended_properties s1 on o1.object_id = s1.major_id
WHERE o1.type = 'U'
    AND s1.name = 'MS_Description'      
UNION
SELECT N'comment on column '+ Lower(o2.[name]) + '.' + Lower(c.[name]) 
    + N' is ''' + CAST(s2.value AS NVARCHAR(4000)) + ''';' 
FROM sys.objects o2 
    INNER JOIN sys.columns c ON o2.object_id = c.object_id 
    INNER JOIN sys.extended_properties s2 on o2.object_id = s2.major_id
WHERE o2.type = 'U'
    AND c.column_id = s2.minor_id
    AND s2.name = 'MS_Description';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32977008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档