Azure SQL 数据库的ElasticQuery和视图
如何创建连接跨数据库的视图?读了这篇文章,你会找出如何让这些视图与Elastic Query很好一起工作的方法。
问题:在SQL Azure数据库内构建必要的Elastic Query是如何来影响你创建一个连接跨数据库视图的能力?因为还没有测试过,并且也没有见到任何人用它做任何事,所以,我决定做一个测试——发布脚本来创建跨数据库查询。接下来创建一个视图:
CREATE VIEW dbo.JoinedView
AS
SELECT dt.Val,
dt2.Val AS Val2
FROM dbo.DB1Table AS dt
LEFT JOIN dbo.DB2Table AS dt2
ON dt2.ID = dt.ID;
如果运行该查询,并返回结果。接着我们可以创建视图与SQL Azure数据库之间连接……但是,视图都隐藏了?如果想改变数据库表的名称。是否可以这样做?
CREATE EXTERNAL TABLE dbo.CanICheatThisName (
ID int,
Val varchar(50))
WITH (
DATA_SOURCE = DB2Access);
CREATE脚本运行得很好,并且没有出现任何错误。不过,当我尝试去查询它:
理解Elastic Query是如何工作的,当然这个操作会失败。所以……还有其他方式吗?我将在第二个数据库中创建一个视图:
CREATE VIEW dbo.FakeTable
AS
SELECT *
FROM dbo.DB2Table AS dt;
现在,我将使用视图的名称创建EXTERNAL TABLE :
CREATE EXTERNAL TABLE dbo.FakeTable (
ID int,
Val varchar(50))
WITH (
DATA_SOURCE = DB2Access);
当我查询数据时,这些数据都没问题。
结论
创建一个视图,或进行任何其他的查询,只要连接跨数据库使用Elastic Query工作就可以了。然而,如果你想用视图来隐藏事情,你可能需要在如何实现Elastic Query下有点创新了。在这里有个好消息,就是Elastic Query有这些创新,即设置它的Elastic,那么它就会立即显示。