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

时间:2010-12-15 23:50:28

标签: sql sql-server sql-server-2005 tsql view

我有2个数据库...... a& B'/ P>

我在这两个数据库中都有表“t”。

现在我从数据库“b”中删除表t。

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

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

1 个答案:

答案 0 :(得分:5)

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

使用:

CREATE VIEW b.dbo.t AS
  SELECT a.*
    FROM a.dbo.t a

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

GRANT SELECT ON b.dbo.t TO user

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