SQL 服务器外部 table 中的计算列

Calculated Columns in SQL Server external table

我目前正在为我们的应用程序从本地迁移到 Azure。目前,该应用程序使用跨数据库查询,Azure SQL 服务器不再支持这种查询...真可惜

但是:作为隧道尽头的一盏灯,我们介绍:外部 tables!哇哦!

问题是:我完全可以将外部数据库移植到外部 tables,但对于一个使用计算值的 teenie weenie 列。

这是外部数据库中的table:

CREATE TABLE [dbo].[Table] (
...bla bla bla...
[DF_Installaties_MaxGebruikers] DEFAULT ((-1)) NOT NULL,
[Rublengte]                    INT           CONSTRAINT  [DF_Installaties_Rublengte] DEFAULT ((6)) NOT NULL,
[schooldbserver]               AS            ([dbo].[getpubliek_ip_adres]([p_sqlserver])),
[p_SQLserver]                  INT           CONSTRAINT [DF_Installaties_schooldbserverEqualsDezeServer] DEFAULT ((1)) NOT NULL,
[klaskalendersOpnieuwMaken]    INT           CONSTRAINT 

.... bla bla bla ...
);

some code was left out because it was waay to big...

我第一次尝试创建外部 table 是:

 CREATE EXTERNAL TABLE [ExternalScheme].[ExternalTable]
 ( 

... bla bla bla ...
,   [Rublengte] INT NOT NULL
,   [schooldbserver] AS ([dbo].[getpubliek_ip_adres]([p_sqlserver]))
,   [p_SQLserver] INT NOT NULL
,   [klaskalendersOpnieuwMaken] INT NOT NULL
... bla bla bla ...
WITH  
(  
    DATA_SOURCE = [ExternalDataSource]
);

Again some bla bla bla was left out to get to the point of the question

所以这里真正的问题是:我该怎么做? Sql 数据库项目不接受所指示的方法。

提前致谢! 约翰

外部 table 定义有点像视图作为远程 table 的投影。所以你不需要在外部table中重复计算列的定义,你只需要包括计算列名称和它的数据类型,它应该是远程[=12=中函数返回的数据类型].这是有道理的,因为您希望列计算在远程数据库而不是本地完成。