#はじめに
SQL Serverのインストールから設定を全てC#のプログラムから実行する必要が出ました。
その際に使用ポートを設定をコマンドで実行する方法が見つからずに詰まったので今後のためにメモを残します。
#使用ポートの変更方法
以下のレジストリパスの「TcpDynamicPorts」と「TcpPort」を書き換えることで変更できました。
レジストリパス
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL{バージョン}.{インスタンス名}\MSSQLServer\SuperSocketNetLib\Tcp\IPAll
TcpDynamicPorts = ""
TcpPort = 使用したいポート番号
SQL Serverのバージョンを調べるにはこちらが参考になりました。
コマンドプロンプトから実行するとこんな感じでしょうか。
コマンドプロンプト
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL{バージョン}.{インスタンス名}\MSSQLServer\SuperSocketNetLib\Tcp\IPAll" /v "TcpDynamicPorts " /t REG_SZ /d "" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL{バージョン}.{インスタンス名}\MSSQLServer\SuperSocketNetLib\Tcp\IPAll" /v "TcpPort " /t REG_SZ /d "1433" /f
実際にプログラムに組み込んだコードはこんな感じです。
C#コードサンプル
//レジストリを書き換えて使用ポートを設定した値にする。
RegistryKey key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
key = key.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL{バージョン}.{インスタンス名}\MSSQLServer\SuperSocketNetLib\Tcp\IPAll", true);
//レジストリに書き込み
key.SetValue("TcpPort","1433");
key.SetValue("TcpDynamicPorts", "");
//閉じる
key.Close();
#おわりに
以上、SQL Serverの使用ポートをコマンドで変更する方法でした。
初めての記事なので多分今後編集予定です。。