技术开发 频道

巧用连接请求和调查SQL Server的提高

  【IT168 技术文档】关于切换数据库名称的简单方式的问题,直接的答案是,这是不存在的。为SQL Server的一个实例定义一个别名是可以的,但是无济于事。为另一个数据库中的单独对象定义同义词名也是可以的。只是目前没有一种方法可以定义别名比如提供非直接参照的对象到一个数据库中或者一个模式中。

  我能为同事提供的非常好的解决方案是在具有存储过程的数据库中会每张表和每个视图创建同义词,这些表和视图是存储过程可能会在数据库中参照的。接着,当代码投入生产时,写一个脚本来修改所有同义词以便使用正确的数据库名。创建同义词在技巧“在SQL Server 2005中使用同义词的优劣”中有描述。另一种解决方法是使用动态SQL写所有的查询并把目标数据库的名称存储在一个设置表中或者把它作为一个参数传递。动态SQL把你的代码暴露,这可能会导致SQL 注入攻击的发生,因此这应该被当作最后一种选择。

  十年前,我有一个关于SQL Server 改进功能的建议。当时我能找到的交流建议的唯一途径是一个带有所有微软产品建议的邮件地址。我发送了自己的建议但是没有任何回音。我的邮件没有得到任何肯定,也没有电话,在网站上没有交流建议的地址,最后也没有回复通知我微软打算如何处理我提出的建议。这不是很令人满意,因此我从那以后再也不那么做了。

  我把漏洞报告给产品服务(PSS)的经历却是非常不同的。2005年的时候,我在Visual Basic编辑器中遇到一个漏洞。我和我的客户确定把这个问题告诉产品服务是非常重要的,也有必要让他们提出一种解决方案。PSS确认这确实是编辑其中的一个漏洞,也没有收费。更重要的是,他们解决了这个问题并且在3个月内为我们提供了一个修补程序,这个程序最后成了Visual Studio的一个服务程序包。

  随意报告问题和不用为权限付费的情形在过去几年改变了。现在有一个网站Connect.Microsoft.com提供了微软和个人以及团体开发人员之间的双向沟通。Connect.Microsoft.com/SQLServer致力于开发我们最满意的产品。它有链接到新的服务程序包和试用版本,也有链接到SQL Server的论坛,以及我最感兴趣的Submit_Product_Feedback链接。

  连接允许你查找产品反馈,看看是否有人提供你感兴趣的建议。你可以不仅仅是寻求建议。你可以提出自己的意见,查看建议的状态并且为别人的建议评价其重要性。做任何超越查找的事情,你需要有一个Windows Live ID并且在该网站上填写个人资料。

  要解决我同事的问题,我首先在论坛“数据库同义词”上查找一个类似的问题。有7个可能性,结果显示如下:


图一

  第一个对象是关闭的,但是第二个311079看起来正是我想找的。


图二

  该描述告诉我,进入该论坛的Aaron Bertrand和我寻找同样的功能。它也告诉我现在还没有公开发布的工作区。这让我对同事的问题有了更高的自信,那就是我们错失什么。

  当然,我注册并把该贴等级列为5。只有7个等级才出现了一年多一点,所以我并不惊讶该功能还未添加到SQL Server 2008中,但是我们希望将来能够添加。如果你喜欢这个主意,那么请为它评级。每一个投票都会有帮助。我也将该贴添加到我的查看列表中,这样我就能得到及时的邮件,知道每个更改的状态或者是否有人发布一个工作区。

  我之前提过建议。项目邮件用于标量表达函数,在一年半之后,它有35个评分并且仍然打开。项目398203报告一个sp_rename中的漏洞,该漏洞就是,不能再系统表的文本中改变函数或者存储过程的名称,该系统表存储允许sp_help_text错误显示的原始名的模式。该漏洞的解决状态是“不能修复”。因此我们不得不继续深受它。

  建立这个连接网站显示了微软对团体开发人员的态度的巨大变化。他们采取建议并且有所回馈。我并不是喜欢我收到的每一个回复,但是至少它是一个回复。连接也提供了一种方式可以验证你遇到的仍然没有解决方法或者工作区的问题。

0
相关文章