有没有办法在链接到不存在的表的数据库中创建视图?
我们刚刚发现数据导入例程已经失败了一段时间,因为相当大的升级意外删除了一个视图。
该视图(在我们产品的数据库中,托管在客户端服务器上)链接到我们的一个客户数据库中的一个表,并由我们的客户为此目的创建。
此视图的意外删除是由于数据库更改的数量(包括视图的创建和删除),而 SQL 比较工具将删除特定于客户端的视图这一事实被简单地遗漏了。
因此,能够在我们的本地开发数据库上创建此视图的副本将非常有用(具有客户端表的完整限定名称,我们显然无法在实时环境之外访问)所以这不会再次发生。
(有问题的客户正在运行 SQL Server 2008,但是该产品也可以在 2005 环境中运行,供其他客户使用。因此,最好选择 2005 的答案,但如果它是 2008 特定的,那不是问题。)
更新:
要回复@Damien 的评论...
我明白你在说什么,在视图中创建一个链接到的空表会很有意义。
不幸的是,有问题的表不仅托管在不同的数据库中,而且托管在不同的 SQL 服务器上。这意味着我将在我们所有的开发机器上创建一个新的服务器实例,以便托管这个单一的空表。而且我必须在我们的许多客户端上执行此操作,从而导致大量实际上未使用的服务器实例。
我真的希望能够避免这种情况,而是能够创建视图(这在我们的开发环境中显然会失败),但将来不会再次被意外删除。
更新 2
我已经接受了@Damien 所说的内容并使用Linked Server
......查看我的答案以获取更多详细信息