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=中函数返回的数据类型].这是有道理的,因为您希望列计算在远程数据库而不是本地完成。
我目前正在为我们的应用程序从本地迁移到 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=中函数返回的数据类型].这是有道理的,因为您希望列计算在远程数据库而不是本地完成。