Sql server sys存储过程的Intellisense和上下文帮助-错误还是设计?

Sql server sys存储过程的Intellisense和上下文帮助-错误还是设计?,sql-server,tsql,stored-procedures,intellisense,sql-server-2008,Sql Server,Tsql,Stored Procedures,Intellisense,Sql Server 2008,SQL Server 2008 R2开发 在SSMS中执行: 一, 使用DW; 去 sp_cdc_启用_表 “dbo”, “FactInternetSales”, @角色名称=NULL, @支持\u net\u更改=0 成功 为什么执行死刑 二, sp_cdc_enable_表'dbo','FactInternetSales',@role_name=NULL,@supports_net_changes=0 给出错误: Msg 201,16级,状态4,程序sp\U cdc\U enable\U表格

SQL Server 2008 R2开发

在SSMS中执行: 一,

使用DW; 去 sp_cdc_启用_表 “dbo”, “FactInternetSales”, @角色名称=NULL, @支持\u net\u更改=0

成功

为什么执行死刑 二,

sp_cdc_enable_表'dbo','FactInternetSales',@role_name=NULL,@supports_net_changes=0

给出错误:

Msg 201,16级,状态4,程序sp\U cdc\U enable\U表格,第0行 过程或函数“sp_cdc_enable_table”需要参数“@role_name”,但未提供该参数

当在SSMS中的sp_cdc_enable_表上放置鼠标光标时,Intellisense弹出窗口显示:

存储过程AdventureWorksDW.sys.sp_cdc_enable_表 @源\u架构sysname, @源名称sysname, @捕获\u实例sysname=null, @支持\u net\u changes bit=null, @角色名称sysname, @索引名称sysname=null, [续段被vgv8截断]

not=null是否表示省略参数时使用的默认值? 为什么@index\u name sysname的ommission没有给出错误

附带问题: 如何将弹出式描述的文本复制到缓冲区中以便进一步粘贴? 弹出窗口中的@role\u name bit=null不是错误,应该是@role\u name bit=0吗

更新: 我在帖子里纠正了打字错误。 真的,我执行了

sp_cdc_enable_表'dbo','FactInternetSales',@role_name=NULL,@supports_net_changes=0

i、 e.两个变体都是执行相同的脚本 1未注释 2附评论

更新3: 好的,最初我打错了弹出窗口的文本,现在我更正了。 因此,有关错误的问题已删除,谢谢

从我成功执行1的背景来看,你应该注意到我的问题是关于弹出窗口,而不是如何成功:

弹出窗口是否不正确? @capture_instance sysname=null,是否应将其括在括号[]中,以表明可以对其进行编辑? @支持\u net\u changes bit=null,-是否应为=0? 如何复制弹出窗口,例如,报告Microsoft Connect中的错误? 请注意,弹出窗口还有@capture_instance=null,可以将其完全写入,但不会以任何方式标记为空

更新4: 我包括了截图。 嗯,这是一个相当上下文相关的帮助。 Intellisense在sys.sp_*上根本不工作,如果出现语法错误,则不会显示弹出窗口-无论MS通过此类帮助假装完成了什么,因为有必要插入完整正确的语句以避免语法错误,并提供上下文相关帮助

更新5: 那么,不能删除具有默认值的参数有什么意义呢

您缺少一个'

将其更改为:

sp_cdc_enable_table 'dbo', 'FactInternetSales' 
它应该可以解决您的问题。

您缺少一个

将其更改为:

sp_cdc_enable_table 'dbo', 'FactInternetSales' 

它应该可以解决您的问题。

根据MSDN文档,必须指定@role\u name

[@role\u name=]“role\u name”

用于对更改数据的访问进行选通的数据库角色的名称。角色名称为sysname,必须指定。如果显式设置为NULL,则不会使用任何选通角色来限制对更改数据的访问

如果角色当前存在,则使用该角色。如果该角色不存在,将尝试创建具有指定名称的数据库角色。在尝试创建角色之前,将在字符串右侧的空白处修剪角色名称。如果调用方无权在数据库中创建角色,则存储过程操作将失败


根据MSDN文档,必须指定@role_name

[@role\u name=]“role\u name”

用于对更改数据的访问进行选通的数据库角色的名称。角色名称为sysname,必须指定。如果显式设置为NULL,则不会使用任何选通角色来限制对更改数据的访问

如果角色当前存在,则使用该角色。如果该角色不存在,将尝试创建具有指定名称的数据库角色。在尝试创建角色之前,将在字符串右侧的空白处修剪角色名称。如果调用方无权在数据库中创建角色,则存储过程操作将失败


出于好奇,你们能用Intellisense的截图编辑你们的帖子吗?出于好奇,你们能用Intellisense的截图编辑你们的帖子吗?它不是我的。我成功地执行了1。请阅读我所要求的内容。另请注意,至少应该有4个参数,这不是我的。我成功地执行了1。请阅读我所要求的内容。另请参见说明,至少应提供4个参数