我可以用一个视图(同名)替换表.

Rel*_*ity 3 sql t-sql sql-server sql-server-2005 view

我有2个数据库.... a&b

我在这两个数据库中都有表"t".

现在我从数据库"b"中删除表t.

我在数据库"b"中创建了一个视图"t"(参见视图的名称与删除的表相同)...这个视图引用了数据库"a"中的表"t".

我有一个dotnet应用程序..它指向数据库"b".它有内联查询....所以我可以在内联查询中保留像"bt"这样的引用.我的意思是现在它会引用视图"t"而不是表"t"?

OMG*_*ies 5

是的,但您要替换的表必须先删除或重命名 - 只有一个对象可以具有该名称.

使用:

CREATE VIEW b.dbo.t AS
  SELECT a.*
    FROM a.dbo.t a
Run Code Online (Sandbox Code Playgroud)

唯一需要注意的是B数据库中的用户可能需要被授予SELECT权限:

GRANT SELECT ON b.dbo.t TO user
Run Code Online (Sandbox Code Playgroud)

理想情况下,创建一个角色,然后将SELECT授予该角色,然后您可以将该角色添加到用户.