SQLServer2008 新規インスタンスのリモートデータベース連携問題(sp_addlinkedserver)
まず、原因から説明します。
テスト生は自分のコンピュータで異なるバックエンドをテストしていますが、データベースは同じ名前を使用しています。
そこで、SQL Serverの新しいインスタンスを作成し、新しいインスタンスでは起動に別のポートを指定する必要があり、ポートを変更してsp_addlinkedserver文を実行したところ、接続テストに失敗した。
実行されたSQL文は以下の通りです。
EXEC master.dbo.sp_addlinkedserver @server = N'UserDBLink', @srvproduct=N'UserDBLink', @provider=N'SQLNCLI', @datasrc=N'(LOCAL)', @catalog =N'UsersDB'
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'UserDBLink',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
まず、問題の解決方法ですが、@datasrcの文字列に以下のようにポート番号を追加する必要があります。
@datasrc=N'(LOCAL)' is modified to @datasrc=N'(LOCAL),port number'
かなり単純でしょう?でも、でも、でも、調べるのに時間がかかったけど、やっとプログラムでの連結文字列の使い方がわかって解決したんだ。
プログラム中のリンク文字列は次のようになります。
Provider=SQLOLEDB.1;Password=11;Persist Security Info=True;User ID=sa;Initial Catalog=db;Data Source=127.0.0.1,1433;
問題を見つける過程で、MSDNのドキュメントをチェックし、実際に新しいポートを書いていない、どうりで長い間、姉妹が投げた 私はMSDNについて間違っているのかどうかわからない!私は、この問題を解決することができます。
以下はそのリンクです。 https://msdn.microsoft.com/zh-cn/library/ms190479.aspx
これは、私がコピーしたMSDNの説明です。
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
パラメータです。
[ @server= ] 'server'
作成するリンクサーバーの名前です。サーバーのデータ型はsysnameで、デフォルト値はありません。
[ @srvproduct= ] 'product_name'
リンク先サーバーのOLE DBデータソースとして追加する製品名です。ライブラリはnvarchar(128)で、デフォルト値はNULLです。SQL Serverの場合、provider_name, data_source, location, provider_string, directoryは指定する必要はない。
[ @provider= ] 'provider_name'
このデータソースに対応するOLE DBアクセス・インターフェースの一意のプログラミング識別子(PROGID)。provider_nameはnvarchar(128)で、デフォルトはNULLです。ただしprovider_nameを省略した場合はSQLNCLIが使用されます。(SQLNCLIを使用すると、SQL ServerはSQL Server Native Client OLE DB Access Interfaceの最新バージョンにリダイレクトします(version.)) OLE DB Access Interfaceは、指定されたPROGIDでレジストリに登録される必要があります。
[ @datasrc= ] 'data_source'
OLE DBアクセスインターフェイスが解釈するデータソース名です。data_sourceはnvarchar(4000)です。data_sourceは、初期化するOLE DBアクセスインターフェイスのDBPROP_INIT_DATASOURCE属性として渡されます。
[ @location= ] 'location'
OLE DB Access Interfaceで解釈されるデータベースの場所です。ロケーションは nvarchar (4000) で、デフォルト値は NULL です。ロケーションは、初期化するOLE DBアクセスインターフェイスのDBPROP_INIT_LOCATION属性として渡されます。
[ @provstr= ] 'provider_string'
OLE DB アクセスインターフェース固有の接続文字列で、一意のデータソースを識別します。provider_string は nvarchar (4000) で、デフォルトは NULL です。 provstr は IDataInitialize に渡されるか、 DBPROP_INIT_PROVIDERSTRING プロパティに設定されて OLE DB アクセスインターフェイスが初期化されます。
SQL ServerNative クライアント OLE DB プロバイダでリンクされたサーバを作成するには、server SERVER キーワードを使用してインスタンス =servernameinstancename を指定し、SQL Server の特定のインスタンスを指定します。servername は SQL Server が実行されているコンピュータ名、instancename は SQL Server ユーザーが接続する特定のインスタンスの名 前です。
[ @catalog= ] 'catalog'
OLE DBアクセス・インターフェースへの接続を確立する際に使用するカタログです。ディレクトリは sysname であり、デフォルトは NULL です。このディレクトリは初期化するOLE DBアクセスインターフェイスのDBPROP_INIT_CATALOG属性として渡されます。SQL Serverインスタンスに対してリンク・サーバーを定義する場合、このディレクトリはリンク・サーバーがマッピングされるデフォルト・データベースを指します。
上記は、SQLServer2008のリモートデータベースのリンクの問題(sp_addlinkedserver)の新しい例です、私はそれがあなたの助けになることを願って、あなたは私にメッセージを与えるために歓迎する任意の質問がある場合、私は速やかにあなたに返信されます
関連
-
SQLServer 2008は、評価期間が終了したソリューションであることを確認しました。
-
SQL server 2008のログイン認証方式を変更する方法
-
についてSQL Server 2008は、SAパスワードを忘れて、SAパスワードのメソッドのダイアグラムを変更する
-
空白の値を他の値に置き換えるSQL
-
SQL Server 2008 R2 ユーザー権限を割り当てる手順
-
sql server 2008データベース移行の2つの方法
-
SQL Server 2008 R2 認証モードの設定 グラフィックチュートリアル
-
Navicat Premiumを使用してSQLServerのデータをsql形式にエクスポートする
-
sql server 2008のインストールに失敗したときの解決策 旧バージョンを完全にアンインストールしてください。
-
SQL Server 2008データベースの定期的な自動バックアップを設定する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQL Server 2008のOrder byは、union句で直接利用できない
-
SQLServer 2008 データ挿入・更新用ストアドプロシージャ
-
SQL Server 2008 R2のCPUとメモリ使用量の増加に対する2つの解決策
-
SQL SERVER 2008のデータベースログファイルの縮小方法
-
SQL Server 2008でSQLクエリ文のフィールド値の大文字と小文字が区別されない問題の解決
-
sqlserver 2008 データベースに接続する Java コード
-
vueベースの兄弟コンポーネント間のイベントトリガー(詳細)
-
Javaファイルの操作のオブジェクトは、いくつかのメソッドが一般的に使用される(推奨)ファイル
-
SQLServerウェブサイト構築例
-
Sql Server 2008R2アップグレード Sql Server 2012グラフィックチュートリアル