我有一个供应商数据库,我想从中提取和转换某些信息。由于我不想因许可而更改原始数据库的结构,因此我想知道是否可以将供应商数据库中的视图放在一起,但将它们与其他一些复制和转换的数据一起存储在第二个 sql server 2008 数据库中。第二个数据库应该位于同一服务器上的第一个数据库旁边。
是否可能有这样的视图,如果是这样,在查询视图时我会失去很多性能吗?
And*_*ton 10
是的,这可能是三部分命名的目的。
引用供应商表时,请使用以下格式:[DatabaseName].[DatabaseOwner].[TableName]。IE:
CREATE View [ViewName]
AS
SELECT * FROM [VendorDB].[dbo].[TableName]
Run Code Online (Sandbox Code Playgroud)
关于性能,没有太大的性能影响,如果表具有适当的索引和统计信息,您的数据库中的查询将使用这些数据。
注意:如果您在查询中指定索引提示,这些将被忽略,除非您绕过视图并直接引用表。
您的数据库的位置
正如 Stan 所指出的,上面假设两个数据库驻留在同一个 SQL Server 实例上,如果您希望视图驻留在不同的 SQL 实例中(我不建议这样做),您可以:
IE:
CREATE View [ViewName]
AS
SELECT * FROM [VendorDBInstance].[VendorDB].[dbo].[TableName]
Run Code Online (Sandbox Code Playgroud)
许可不应阻止您向第一个数据库添加视图。我去过的每个地方都有用于报告等的自定义对象,这些对象扩展了第 3 方产品的功能。
也就是说,您自己的数据库中的视图中可以有 3 部分对象名称
CREATE VIEW myview
AS
SELECT ... FROM TheirDB.dbo.TheirTable
GO
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6890 次 |
最近记录: |