sqlcmd による接続Connecting with sqlcmd

ダウンロードODBC Driver のダウンロードDownloadDownload ODBC Driver

Sqlcmdユーティリティでは、 MicrosoftMicrosoft ODBC Driver for SQL ServerSQL Server Linux や macOS にします。The sqlcmd utility is available in the MicrosoftMicrosoft ODBC Driver for SQL ServerSQL Server on Linux and macOS.

次のコマンドは、Windows 認証 (Kerberos) を使用する方法を示して、 SQL ServerSQL Server認証では、それぞれします。The following commands show how to use Windows Authentication (Kerberos) and SQL ServerSQL Server Authentication, respectively:

sqlcmd –E –Sxxx.xxx.xxx.xxx  
sqlcmd –Sxxx.xxx.xxx.xxx –Uxxx -Pxxx  

使用可能なオプションAvailable Options

現在のリリースでは、次のオプションを使用できます。In the current release, the following options are available:

  • -?-? 表示sqlcmd使用します。Display sqlcmd usage.

  • -a、パケット サイズを要求します。-a Request a packet size.

  • -b Terminate バッチ ジョブ エラーがある場合。-b Terminate batch job if there is an error.

  • -c batch_terminatorバッチ ターミネータを指定します。-c batch_terminator Specify the batch terminator.

  • -C サーバー証明書を信頼します。-C Trust server certificate.

  • -d database_name問題、 USE database_nameステートメントを開始するときにsqlcmdです。-d database_name Issue a USEdatabase_name statement when you start sqlcmd.

  • -D によりに渡された値、 sqlcmd -s オプションのデータ ソース名 (DSN) として解釈されます。-D Causes the value passed to the sqlcmd -S option to be interpreted as a data source name (DSN). 詳細については、次を参照してください。"での DSN サポートsqlcmdbcp"このトピックの最後にします。For more information, see "DSN Support in sqlcmd and bcp" at the end of this topic.

  • -e は、標準出力デバイス (stdout) を入力スクリプトを記述できます。-e Write input scripts to the standard output device (stdout).

  • -E は、信頼関係接続 (統合認証です。) を使用してください。Linux または macOS クライアントから統合認証を使用して信頼関係接続の作成に関する詳細については、次を参照してください。 Using Integrated Authenticationです。-E Use trusted connection (integrated authentication.) For more information about making trusted connections that use integrated authentication from a Linux or macOS client, see Using Integrated Authentication.

  • -h number_of_rows列見出し間に出力する行数を指定します。-h number_of_rows Specify the number of rows to print between the column headings.

  • -H では、ワークステーション名を指定します。-H Specify a workstation name.

  • -i input_file[、input_file[,...]ストアド プロシージャまたは SQL ステートメントのバッチを含むファイルを識別します。-i input_file[,input_file[,…]] Identify the file that contains a batch of SQL statements or stored procedures.

  • -I セット、SET QUOTED_IDENTIFIER接続オプションをオンにします。-I Set the SET QUOTED_IDENTIFIER connection option to ON.

  • -k は、削除するか、制御文字を置き換えます。-k Remove or replace control characters.

  • -K * * * application_intent*-Kapplication_intent
    アプリケーションがサーバーに接続するときのワークロードのタイプを宣言します。Declares the application workload type when connecting to a server. 現在サポートされている値は、ReadOnly** だけです。The only currently supported value is ReadOnly. 場合 -kが指定されていないsqlcmdAlwaysOn 可用性グループのセカンダリ レプリカへの接続をサポートしていません。If -K is not specified, sqlcmd does not support connectivity to a secondary replica in an AlwaysOn availability group. 詳細については、次を参照してください。 ODBC Driver on Linux and macOS - 高可用性と災害復旧です。For more information, see ODBC Driver on Linux and macOS - High Availability and Disaster Recovery.

注意

-K は、CTP for SUSE Linux ではサポートされていません。-K is not supported in the CTP for SUSE Linux. ただしを指定できます、 ApplicationIntent = ReadOnlyに渡される DSN ファイルでキーワードsqlcmdです。You can, however, specify the ApplicationIntent=ReadOnly keyword in a DSN file passed to sqlcmd. 詳細については、次を参照してください。"での DSN サポートsqlcmdbcp"このトピックの最後にします。For more information, see "DSN Support in sqlcmd and bcp" at the end of this topic.

  • -lタイムアウトするまでの秒数を指定、sqlcmdサーバーに接続しようとすると、ログインがタイムアウトします。-l timeout Specify the number of seconds before a sqlcmd login times out when you try to connect to a server.

  • -m error_levelコントロールするエラー メッセージは stdout に送信されます。-m error_level Control which error messages are sent to stdout.

  • -M * * * multisubnet_failover*-Mmultisubnet_failover
    SQL Server 2012 (11.x)SQL Server 2012 (11.x) 可用性グループまたは SQL Server 2012 (11.x)SQL Server 2012 (11.x) フェールオーバー クラスター インスタンスの可用性グループ リスナーに接続する際には、必ず **-M を指定してください。Always specify -M when connecting to the availability group listener of a SQL Server 2012 (11.x)SQL Server 2012 (11.x) availability group or a SQL Server 2012 (11.x)SQL Server 2012 (11.x) Failover Cluster Instance. -M迅速に検出およびフェールオーバー (現在) アクティブなサーバーへの接続を提供します。-M provides for faster detection of failovers and connection to the (currently) active server. -M を指定しない場合、 -M は無効になります。If –M is not specified, -M is off. 詳細については AlwaysOn 可用性グループAlwaysOn Availability Groupsを参照してくださいODBC Driver on Linux and macOS - 高可用性と災害復旧です。For more information about AlwaysOn 可用性グループAlwaysOn Availability Groups, see ODBC Driver on Linux and macOS - High Availability and Disaster Recovery.

注意

-M は、CTP for SUSE Linux ではサポートされていません。-M is not supported in the CTP for SUSE Linux. ただしを指定できます、 MultiSubnetFailover = Yesに渡される DSN ファイル内のキーワードsqlcmdです。You can, however, specify the MultiSubnetFailover=Yes keyword in a DSN file passed to sqlcmd. 詳細については、次を参照してください。"での DSN サポートsqlcmdbcp"このトピックの最後にします。For more information, see "DSN Support in sqlcmd and bcp" at the end of this topic.

  • -N 接続を暗号化します。-N Encrypt connection.

  • -o output_fileからの出力を受信するファイルを識別sqlcmdです。-o output_file Identify the file that receives output from sqlcmd.

  • すべての結果の-p 印刷パフォーマンス統計情報を設定します。-p Print performance statistics for every result set.

  • -P では、ユーザーのパスワードを指定します。-P Specify a user password.

  • -q commandline_queryクエリを実行するときにsqlcmd開始されるが、クエリの実行が終了したら、終了しません。-q commandline_query Execute a query when sqlcmd starts, but does not exit when the query has finished running.

  • -Q commandline_queryクエリを実行するときにsqlcmdを開始します。-Q commandline_query Execute a query when sqlcmd starts. sqlcmd クエリの終了時に終了します。sqlcmd will exit when the query finishes.

  • -r stderr にエラー メッセージをリダイレクトします。-r Redirects error messages to stderr.

  • -R は、クライアントの地域別設定を使用して、文字データに通貨および日付と時刻のデータを変換するドライバーをさせます。-R Causes the driver to use client regional settings to convert currency and date and time data to character data. 現時点では、en_US (英語 (米国)) 書式設定のみを使用します。Currently only uses en_US (US English) formatting.

  • -s column_separator_char列の区切り文字を指定します。-s column_separator_char Specify the column-separator character.

  • -S [プロトコル:]サーバー[、* * * ポート]-S [protocol:] *server[,port]
    インスタンスを指定 SQL ServerSQL Serverに接続するかどうか、-d はまたはを使用する DSN。Specify the instance of SQL ServerSQL Server to connect to, or if -D is used, a DSN. ODBC driver on Linux and macOS が -%s が必要です。The ODBC driver on Linux and macOS requires -S. なおtcp唯一の有効なプロトコルです。Note that **tcp is the only valid protocol.

  • -t query_timeoutコマンド (または SQL ステートメント) がタイムアウトするまでの秒数を指定します。-t query_timeout Specify the number of seconds before a command (or SQL statement) times out.

  • -u を指定してその output_file は input_file の形式に関係なく、Unicode 形式で格納されます。-u Specify that output_file is stored in Unicode format, regardless of the format of input_file.

  • -U login_idユーザー ログイン ID を指定します-U login_id Specify a user login ID.

  • -V error_severity_level ERRORLEVEL 変数の設定に使用される重大度レベルを制御します。-V error_severity_level Control the severity level that is used to set the ERRORLEVEL variable.

  • -w column_width出力用の画面幅を指定します。-w column_width Specify the screen width for output.

  • W は、列から末尾のスペースを削除します。-W Remove trailing spaces from a column.

  • -x 変数の代入の無効化します。-x Disable variable substitution.

  • -X コマンド、スタートアップ スクリプト、および環境変数を無効にします。-X Disable commands, startup script, and environment variables.

  • -y variable_length_type_display_width設定、sqlcmdスクリプト変数SQLCMDMAXFIXEDTYPEWIDTHです。-y variable_length_type_display_width Set the sqlcmd scripting variable SQLCMDMAXFIXEDTYPEWIDTH.

  • -Y fixed_length_type_display_width設定、sqlcmdスクリプト変数SQLCMDMAXVARTYPEWIDTHです。-Y fixed_length_type_display_width Set the sqlcmd scripting variable SQLCMDMAXVARTYPEWIDTH.

使用可能なコマンドAvailable Commands

現在のリリースでは、次のコマンドを使用できます。In the current release, the following commands are available:

  • [:]!![:]!!

  • :Connect:Connect

  • :Error:Error

  • [:]EXIT[:]EXIT

  • GO [count]GO [count]

  • :Help:Help

  • :List:List

  • :Listvar:Listvar

  • :On Error:On Error

  • :Out:Out

  • :Perftrace:Perftrace

  • [:]QUIT[:]QUIT

  • :r:r

  • :RESET:RESET

  • :setvar:setvar

利用できないオプションUnavailable Options

現在のリリースで、次のオプションがご利用いただけません。In the current release, the following options are not available:

  • ログイン A SQL ServerSQL Server専用管理者接続 (DAC) を使用します。-A Log in to SQL ServerSQL Server with a Dedicated Administrator Connection (DAC). 専用管理者接続 (DAC) を作成する方法については、次を参照してください。プログラミング ガイドラインです。For information on how to make a dedicated administrator connection (DAC), see Programming Guidelines.

  • -f code_page入力と出力のコード ページを指定します。-f code_page Specify the input and output code pages.

  • -L は、ローカルに構成されているサーバー コンピューターおよびネットワーク上でブロードキャストしているサーバー コンピューターの名前を一覧表示します。-L List the locally configured server computers, and the names of the server computers that are broadcasting on the network.

  • -v を作成する、sqlcmdで使用できるスクリプトの変数、sqlcmdスクリプト。-v Create a sqlcmd scripting variable that can be used in a sqlcmd script.

次の代替方法を使用することができます。 別のファイルに追加することができますし、1 つのファイル内のパラメーターに配置します。You can use the following alternative method: Put the parameters inside one file, which you can then append to another file. これにより、パラメーター ファイルを使用して値を置き換えることができます。This will help you use a parameter file to replace the values. たとえば、という名前のファイルを作成a.sql(パラメーター ファイル)、次のコンテンツ。For example, create a file called a.sql (the parameter file) with the following content:

:setvar ColumnName object_id  
:setvar TableName sys.objects  

という名前のファイルを作成し、b.sql交換のパラメーターを使用します。Then create a file called b.sql, with the parameters for replacement:

select $(ColumnName) from $(TableName)  

コマンドラインで結合a.sqlb.sqlc.sql次のコマンドを使用します。At the command line, combine a.sql and b.sql into c.sql using the following commands:

cat a.sql > c.sql 

cat b.sql >> c.sql  

実行sqlcmdしてc.sql入力ファイルとして。Run sqlcmd and use c.sql as input file:

slqcmd -S<…> -P<..> –U<..> -I c.sql  
  • -zパスワードパスワードを変更します。-z password Change password.

  • -Zパスワードパスワードの変更と終了します。-Z password Change password and exit.

使用できないコマンドUnavailable Commands

現在のリリースでは、次のコマンドがご利用いただけません。In the current release, the following commands are not available:

  • :ED:ED

  • :ServerList:ServerList

  • :XML:XML

sqlcmd および bcp の DSN サポートDSN Support in sqlcmd and bcp

サーバー名の代わりにデータ ソース名 (DSN) を指定することができます、 sqlcmdまたはbcp -Sオプション (またはsqlcmd : 接続コマンド)-d を指定した場合You can specify a data source name (DSN) instead of a server name in the sqlcmd or bcp -S option (or sqlcmd :Connect command) if you specify -D. -D によりsqlcmdまたはbcp -s オプションで、DSN に指定されたサーバーに接続します。-D causes sqlcmd or bcp to connect to the server specified in the DSN by the -S option.

システム Dsn に格納されている、 odbc.ini ODBC SysConfigDir ディレクトリ内のファイル (/etc/odbc.ini標準インストールで)。System DSNs are stored in the odbc.ini file in the ODBC SysConfigDir directory (/etc/odbc.ini on standard installations). ユーザー Dsn に格納されている.odbc.iniでユーザーのホーム ディレクトリ (~/.odbc.ini)。User DSNs are stored in .odbc.ini in a user's home directory (~/.odbc.ini).

次のエントリは、Linux または macOS DSN でサポートされます。The following entries are supported in a DSN on Linux or macOS:

  • ApplicationIntent = ReadOnlyApplicationIntent=ReadOnly

  • データベース = * * * database_name*Database=**database_name

  • Driver for SQL Server ODBC Driver 11 を = またはDriver for SQL Server ODBC Driver 13 を =Driver=ODBC Driver 11 for SQL Server or Driver=ODBC Driver 13 for SQL Server

  • MultiSubnetFailover = YesMultiSubnetFailover=Yes

  • サーバー = * * * server_name_or_IP_address*Server=**server_name_or_IP_address

  • Trusted_Connection=yes|noTrusted_Connection=yes|no

Dsn では DRIVER エントリのみが必要ですが、サーバーに接続するsqlcmdまたはbcpサーバー エントリに値が必要です。In a DSN, only the DRIVER entry is required, but to connect to a server, sqlcmd or bcp needs the value in the SERVER entry.

DSN の両方で同じオプションが指定されている場合、sqlcmdまたはbcpコマンド ライン コマンド ライン オプションは、DSN で使用される値をオーバーライドします。If the same option is specified in both the DSN and the sqlcmd or bcp command line, the command line option overrides the value used in the DSN. 例では、DSN に DATABASE エントリとsqlcmdコマンドラインが含まれています -dに渡された値 -dを使用します。For example, if the DSN has a DATABASE entry and the sqlcmd command line includes -d, the value passed to -d is used. 場合Trusted_Connection = [はい] DSN、Kerberos 認証を使用し、ユーザー名で指定された (– U) とパスワード (– P)、指定した場合は無視されます。If Trusted_Connection=yes is specified in the DSN, Kerberos authentication is used and user name (–U) and password (–P), if provided, are ignored.

呼び出す既存のスクリプトisqlを使用するように変更するsqlcmdは次の別名を定義することによって:alias isql="sqlcmd –D"です。Existing scripts that invoke isql can be modified to use sqlcmd by defining the following alias: alias isql="sqlcmd –D".

参照See Also

使用した接続bcpConnecting with bcp