2010-12-15 15 views
3

私は2データベースを持っています.... a & bテーブルを(同じ名前の)ビューで置き換えることはできますか?

私はこれらのデータベースの両方でテーブル "t"を持っています。

今、データベース "b"からテーブルtを削除しています。

データベース "b" ...のビュー "t"(ビューの名前は削除されたテーブルと同じです)を作成し、このビューはデータベース "a"のテーブル "t"を参照しています。

私はデータベース "b"を指すドットネットアプリケーションを持っています。それはインラインクエリを持っています.... インラインクエリでこの "b.t"のような参照を残すことができます。 テーブル "t"の代わりにビュー "t"を参照することになりますか?

答えて

5

はい、置き換えようとしているテーブルを削除するか名前を変更する必要があります。名前を持つオブジェクトは1つだけです。

用途:

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

唯一の注意点は、BのdatbaseのユーザーがSELECT権限を付与する必要があるかもしれませんです。そして、そのロールにSELECT付与、ロールを作成し、理想的には

GRANT SELECT ON b.dbo.t TO user 

をユーザーに追加を含めることができます。

+0

私の質問はビューを作成する方法ではありません...削除されたテーブルと同じ名前のビューを作成する場合。ストアドプロシージャ/インラインクエリの参照を変更する必要がありますか? – Relativity

+0

@Anish:列名とそのデータ型が一致していれば、問題はないはずですが、SP/etcを再コンパイルしても問題はありません。 –

+0

いいえ、同じスキーマ名セットに入っている限り、参照を変更する必要はありません –

関連する問題