返回 登录
0

Azure SQL 数据库的ElasticQuery和视图

原文:Elastic Query in Azure SQL Database and Views
作者: Grant Fritchey
译者: 孙思
责编:孙思,关注数据库领域,寻求报道或者投稿请发邮件sunsi@csdn.net,另有「CSDN 高级数据库技术群」,内有诸多知名互联网公司的大牛,欢迎加微信sunlovesi申请入群,备注姓名+公司+职位。

如何创建连接跨数据库的视图?读了这篇文章,你会找出如何让这些视图与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,那么它就会立即显示。

评论