如何修改针对SQL Server 2012的字段注释生成代码

2020-09-08 22:58发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

为SQL Server字段SomeSchema.SomeTable.SomeField添加注释而生成的代码是:

如果存在(从sys.extended_properties p中选择1,其中
       p.major_id = object_id('SomeSchema.SomeTable')
   和p.minor_id =(从sys.columns c中选择c.column_id,其中c.object_id = p.major_id和c.name ='SomeField')
 )
 开始
    执行sp_dropextendedproperty'MS_Description',
    '用户','SomeSchema','表','SomeTable','列','SomeField'
 结束
 执行sp_addextendedproperty'MS_Description',
    "等等",
    '用户','SomeSchema','表','SomeTable','列','SomeField'
 去

问题是使用'user'给我以下错误:

查找错误-SQL Server数据库错误:对象无效。 不允许在" SomeSchema.SomeTable.SomeField"上使用扩展属性,否则该对象不存在。

如果SomeSchema是dbo,那么它将起作用。

是否可以调整生成脚本以生成" SCHEMA"而不是" USER"。 在他们的文档中, https://docs.microsoft.com/zh-CN/sql/relational-databases/system-stored-procedures/sp-addextendedproperty-transact-sql?view=sql -server-2017&viewFallbackFrom = sql-server-2012 ,它们指出:

在将来的SQL Server版本中,将删除在级别1类型对象的扩展属性中将USER指定为级别0类型的功能。 改用SCHEMA作为0级类型。

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

为SQL Server字段SomeSchema.SomeTable.SomeField添加注释而生成的代码是:

如果存在(从sys.extended_properties p中选择1,其中
       p.major_id = object_id('SomeSchema.SomeTable')
   和p.minor_id =(从sys.columns c中选择c.column_id,其中c.object_id = p.major_id和c.name ='SomeField')
 )
 开始
    执行sp_dropextendedproperty'MS_Description',
    '用户','SomeSchema','表','SomeTable','列','SomeField'
 结束
 执行sp_addextendedproperty'MS_Description',
    "等等",
    '用户','SomeSchema','表','SomeTable','列','SomeField'
 去

问题是使用'user'给我以下错误:

查找错误-SQL Server数据库错误:对象无效。 不允许在" SomeSchema.SomeTable.SomeField"上使用扩展属性,否则该对象不存在。

如果SomeSchema是dbo,那么它将起作用。

是否可以调整生成脚本以生成" SCHEMA"而不是" USER"。 在他们的文档中, https://docs.microsoft.com/zh-CN/sql/relational-databases/system-stored-procedures/sp-addextendedproperty-transact-sql?view=sql -server-2017&viewFallbackFrom = sql-server-2012 ,它们指出:

在将来的SQL Server版本中,将删除在级别1类型对象的扩展属性中将USER指定为级别0类型的功能。 改用SCHEMA作为0级类型。

谢谢

付费偷看设置
发送
1条回答
小c菟菟
1楼-- · 2020-09-08 23:20

好吧,我想我找到了它,它位于数据库,编辑当前DBMS ..,MSSQLSRV2012 :: Script \ Objects \ Column \ ColumnComment:

 [如果存在(请从sys.extended_properties p中选择1,其中
       p.major_id = object_id('[[%QUALIFIER%]%TABLE%')
   和p.minor_id =(从sys.columns c中选择c.column_id,其中c.object_id = p.major_id和c.name =%.q:COLUMN%)
 )
 开始
    [%OWNER%?[。O:[execute] [exec]] sp_dropextendedproperty [%R%?[N]]'MS_Description',
    [%R%?[N]]'用户',[%R%?[N]]%。q:OWNER%,[%R%?[N]]'表',[%R%?[N]  ]%。q:TABLE%,[%R%?[N]]'column',[%R%?[N]]%。q:COLUMN%
 :声明@CurrentUser sysname
 选择@CurrentUser = user_name()
 [.O:[execute] [exec]] sp_dropextendedproperty [%R%?[N]]'MS_Description',
    [%R%?[N]]'用户',[%R%?[N]] @ CurrentUser,[%R%?[N]]'表',[%R%?[N]]%。q  :TABLE%,[%R%?[N]]'column',[%R%?[N]]%。q:COLUMN%
 ]
 结束
 ] [%OWNER%?[。O:[execute] [exec]] sp_addextendedproperty [%R%?[N]]'MS_Description',
    [%R%?[N]]%。q:COMMENT%,
    [%R%?[N]]'用户',[%R%?[N]]%。q:OWNER%,[%R%?[N]]'表',[%R%?[N]  ]%。q:TABLE%,[%R%?[N]]'column',[%R%?[N]]%。q:COLUMN%
 :选择@CurrentUser = user_name()
 [.O:[execute] [exec]] sp_addextendedproperty [%R%?[N]]'MS_Description',
    [%R%?[N]]%。q:COMMENT%,
    [%R%?[N]]'用户',[%R%?[N]] @ CurrentUser,[%R%?[N]]'表',[%R%?[N]]%。q  :TABLE%,[%R%?[N]]'column',[%R%?[N]]%。q:COLUMN%
 ] 

只是好奇,什么是[%R%?[N]]?

一周热门 更多>