如何使用SSMS在SQL Server 2008 R2视图中留下注释?

Jam*_*ins 5 sql comments ssms sql-server-2008

根据Microsoft的多个来源,SQL Server管理博客| zarez.net在SQL中添加注释并使用SSMS这样做是件小事.在大多数情况下,他们可能是正确的.但是当我登录并创建一个视图时,我无法在其中留下评论.

如果我使用两个连字符( - ),在保存视图时会删除注释,无论我是从头创建它还是更新我之前创建的视图都没关系.

如果我尝试,则不显示Edit -> Advanced -> Click ‘Comment Selection’Advanced选项(参见屏幕截图)

在此输入图像描述

我是否遗漏了某些内容,或者只是不可能在SQL Server视图中留下评论?

Aar*_*and 19

停止使用笨重和错误的视图设计器.

对于新视图,只需打开一个新的查询窗口并开始输入.这样可以正常工作:

USE MyDatabase;
GO

CREATE VIEW dbo.MyView
AS
  -- this view is cool
  SELECT whatever FROM dbo.wherever;
Run Code Online (Sandbox Code Playgroud)

对于现有视图,右键单击视图,然后选择"脚本为">"替换".这将为您提供更好的体验(减去检查和取消选中列等的能力).

在此输入图像描述

各种视觉设计师看起来可能会节省你的时间(而且意图当然也很好),但实施起来很糟糕,存在各种各样的错误和限制,而且它们确实没有得到改善甚至多年来没有被触及过.


bil*_*nkc 9

在创建数据库对象时,可以存储两个可以存储注释的位置.在对象定义之前(以及任何GO语句之后)和对象本身之内.

USE GODUCKS;
-- This comment will not be preserved
GO
-- This comment precedes the view definition
-- This too 
CREATE VIEW dbo.CommentedView
AS
    -- This comment lives inside the view
    SELECT 1 AS MyColumn;
Run Code Online (Sandbox Code Playgroud)

点击F5,然后将视图编辑回来.您可以查看评论的保存位置.

USE [GODUCKS]
GO

/****** Object:  View [dbo].[CommentedView]    Script Date: 10/15/2013 8:12:49 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- This comment precedes the view definition
-- This too 
CREATE VIEW [dbo].[CommentedView]
AS
    -- This comment lives inside the view
    SELECT 1 AS MyColumn;

GO
Run Code Online (Sandbox Code Playgroud)

  • 您可以在"CREATE VIEW"语句之前添加注释,但我不知道您为什么要这样做 - 如果有人复制并粘贴视图定义,则更容易丢失注释... (3认同)