2017-04-12 15 views
1

現在、私たちのアプリケーションでは、オンプレミスからAzureへの移行を行っています。現時点では、アプリケーションはデータベース間のクエリを利用しており、Azure SQLサーバではサポートされなくなりました... bummerSQL Serverの外部テーブルの計算列

しかし、トンネルの終わりのライトとして、外部テーブルを紹介しましょう! Whoehoe!

私は外部データベースを外部テーブルに移植するのに問題はありませんが、計算された値を使用する1つのティーンエージャーの列には問題ありません。

これは、外部データベース内のテーブルです:

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 ... 
); 

それは大きな...

と外部を作成するための私の最初の試みにwaayだったので、いくつかのコードが取り残されましたテーブルには、次のとおりです。

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] 
); 

もう一度、質問のポイントに達するためにいくつかのbla bla blaを残しました

ここで本当の質問は何ですか?これはどうやってですか?指定されたアプローチはSQLデータベースプロジェクトで受け入れられていません。

ご了承いただきありがとうございます! John

答えて

1

外部テーブル定義は、リモートテーブルの投影としてのビューのように機能します。したがって、外部表の計算列の定義を繰り返す必要はなく、計算された列名とそのデータ型を含める必要があります。このデータ型は、リモート表の関数が戻すデータ型にする必要があります。これは、列計算をローカルではなくリモートデータベースで実行したい場合に意味があります。

関連する問題