16

リンクサーバーデータベースにビューを作成するにはどうすればよいですか。たとえば、[5.6.7.8]にリンクサーバー[1.2.3.4]があります。両方のデータベースサーバーはSQLSserver2005です。リンクサーバーのテーブルを使用して[5.6.7.8]にビューを作成したいと思います。

編集:

フルネーム[1.2.3.4].db.dbo.tableを使用して作成すると、このエラーが発生します。

SQL実行エラー。

実行されたSQLステートメント:SELECT * FROM 1.2.3.4.db.dbo.table (角かっこがないことがわかります。) エラーソース:.Net SqlClientデータプロバイダーエラーメッセージ:「0.0」付近の構文が正しくありません。--->IPアドレスの一部。

これはManagementStudioで作成しているだけで、まだ作成されていないため使用していません。IPを変更しました。画像では、IPの周りに角かっこがないことがわかりますが、私はそれを与えましたが、エラーでこれらの角かっこは削除されます。

ありがとう。

4

7 に答える 7

24

4つの部分からなる修飾名を使用する必要があります:linkedserver.database.schema.table

SELECT * FROM [1.2.3.4].Northwind.dbo.Customers

これは、オブジェクト名へのアクセスに関するMSDNの記事です。

SQL管理ツールを使用するのではなく、手動でビューを作成してみることをお勧めします。

CREATE VIEW [dbo].[sywx]
AS
    SELECT  *
    FROM    [1.2.3.4].Atia.dbo.IpPbxDCR
GO

また、可能であれば、IPアドレスを使用するのではなく、リンクサーバーの名前を使用することをお勧めします。

于 2010-03-22T16:23:43.057 に答える
13

そのSQLManagementStudioの問題。Management Studio NEW VIEWを使用してビューを作成しようとすると、構文が正しくないというエラーが発生します。

ただし、SQLクエリを使用する場合:

CREATE VIEW [dbo].[viewname] 
AS 
    SELECT  * 
    FROM    [0.0.0.0].database.dbo.table 
GO 

その後、それは動作します。

テストするには、ビューを更新したときに作成されたビューが表示されます。ビューからselectクエリを実行するだけで、ビューが結果を返すのがわかります。

ただし、そのビューのデザインモードに移行してデザインクエリを実行しようとすると、ビューが正常に作成された場合でもエラーが再度表示されます。

于 2012-05-29T09:21:02.497 に答える
2

リンクサーバーが設定されている場合は、4つの部分からなる修飾名を使用してサーバー上のテーブルを参照するだけです。

linkedserver.database.schema.table

したがって、リンクサーバー名が[0.0.0.0]の場合、テーブルを次のように参照できます。

[0.0.0.0].database.schema.table
于 2010-03-22T16:19:28.027 に答える
2

主な問題は、リンクサーバーに番号(IPアドレス)を付けて名前を付けることです。私のために働いた唯一の方法は、ドットなしでリンクサーバーにアルファベットの名前を使用することでした。次のコード行を使用して、リンクサーバーと認証を追加できます。

    EXEC sp_addlinkedserver   
        @server='TEST_LINK', 
        @srvproduct='',
        @provider='SQLNCLI', 
        @datasrc='tcp:0.0.0.0'

    EXEC sp_addlinkedsrvlogin
        @useself='FALSE',
        @rmtsrvname='TEST_LINK',
        @rmtuser='user',
        @rmtpassword='secret'

ここで元の答えを見つけることができます

于 2012-08-24T20:18:56.423 に答える
1

Webサービス名にピリオドを使用するリンクサーバーの場合-これは機能しません。
コードの詳細と違いの手順は、http:
//www.access-programmers.co.uk/forums/showthread.php?
t= 260764 に掲載されています。FROM [V2.EGG.COM]..[NAT_DBA].[NV_WELLS]
SSMS 2008では、[V2.EGG.COM]..を囲む角かっこはエディターによって削除されます。その後、4つ以上のパーツであるため、更新は失敗します。
回避策を見つけるために無駄に検索しました。
動作するスクリプトは、上記のリンクに掲載されています。

于 2014-02-12T15:23:21.140 に答える
0

リンクサーバーからビューにテーブル/ビューオブジェクトをドラッグアンドドロップするだけで、ManagementStudioによって4つの部分からなる参照が作成されます。

于 2010-03-22T16:28:37.193 に答える
0

リンクサーバーエントリには認証の詳細も含まれているため、リンクサーバーにアクセスする前に、リンクサーバーを定義する必要があります。

リンクサーバーを作成した後、ドット表記servername.database。[owner] .objectを使用して、そのデータベースとそのオブジェクトにアクセスできます。

于 2010-03-23T09:25:03.220 に答える