問題タブ [sqlcmd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
272 参照

sql-server - 本番環境からの開発データベースの復元:テーブルに格納されているリストに基づいて一連のSQLスクリプトを実行しますか?

本番データベースからバックアップを復元してから、SQLスクリプト(ALTER TABLE、INSERTなど)を自動的に再適用して、そのdbスキーマを開発中のものに戻す必要があります。

一握りの異なる開発者からのたくさんのスクリプトがあります。それらはすべて同じディレクトリにあるわけではありません。

私の現在の計画は、疑似システムデータベースのテーブルに完全なファイルシステムパスを持つスクリプトを一覧表示することです。次に、このデータベースにストアドプロシージャを作成します。このストアドプロシージャは、最初にRESTORE DATABASEを実行し、次にスクリプトのリストにカーソルを合わせて、スクリプトごとにSQLCMDのコマンド文字列を作成し、xp_cmdshellを使用してスクリプトごとにそのSQLCMD文字列を実行します。

cursor-> sqlstring->xp_cmdshell->sqlcmdのシーケンスは私には不器用に感じます。また、xp_cmdshellをオンにする必要があります。

このようなことをしたのは私だけではありません。サーバー上のファイルシステムに散在している一連のスクリプトを実行するためのよりクリーンな方法はありますか?特に、xp_cmdshellを必要としない方法は?

0 投票する
1 に答える
2624 参照

sql - SQLCMD モード - 構文が正しくありませんか?

使用しようとしています:

...そして私は得る:

メッセージ 102、レベル 15、状態 1、行 5 'U' 付近の構文が正しくありません。** バッチの実行中にエラーが発生しました。終了します。

私は何が欠けていますか?

0 投票する
6 に答える
10631 参照

c# - ユーザー入力を使用して SQL クエリ文字列を作成する

ユーザーが Web ページで選択した値を使用して文字列を作成する必要があります。

異なる検索条件で複数のマシンのファイルを表示する必要があるとします...

私は現在このコードを使用しています:

これは、ユーザーがマシンを 1 台だけ持っていて、日付を 1 つ選択するだけの固定クエリです...

ユーザーが選択したものに応じて必要に応じて、タイプやサイズなどの複数の検索オプションを持つクエリを作成したいと考えています。

また、複数のマシンを選択できる場合は...

これはすべて実行時に発生します...それ以外の場合は、forループを作成して複数のマシンを 1 つずつ配置する必要があります...そして、ユーザーが選択したケースに応じて複数のクエリを実行する必要があります...

これは非常に興味深いものであり、私はいくつかの助けを借りることができます...

0 投票する
4 に答える
8061 参照

sql-server - SQLCMDRestoreはManagementStudioで機能しますが、DOSプロンプトからは機能しません

Management Studio 2008で実行すると復元コマンドが正常に機能するのに、dosプロンプトから実行すると機能しない理由はありますか?

以下に示すのは、dosプロンプトから実行したときのエラーです。

ただし、これをManagement Studio 2008で直接実行すると、正常に機能します。

ロックやセキュリティの問題はありません。データベースはサーバー上に存在しません。

私はそれを理解することはできません。

何か案は?

0 投票する
1 に答える
18706 参照

sql - SQLを使用してテキストファイルに書き込みまたは追加する方法は?

テーブルをテキスト ファイルにエクスポートするには、ストアド プロシージャから sqlcmd を呼び出す必要がありますか?

0 投票する
1 に答える
387 参照

sqldatareader - SQLDataReaderは、コマンドラインユーティリティsqlcmdを使用するよりも遅いですか?

私は最近、sqlcmdコマンドラインユーティリティを使用するC#コードをSqlDataReaderに置き換えることを同僚に提唱していました。古いコードは次を使用します:System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo( "cmd"、 "/ c" + sqlCmd); whersqlCmdは"sqlcmd-S" + serverName + "-y 0 -h-1 -Q" + "\" "+" USE [" + database +"] "+"; + txtQuery.Text + "\ ""; \

次に、結果は正規表現を使用して解析されます。私は、SQLDataReaderを使用することで、業界の慣行に沿ったものになり、デバッグと保守が容易になり、おそらくより高速になると主張しました。ただし、SQLDataReaderのアプローチは少なくとも同じ速度であり、おそらく低速です。私はSQLDataReaderですべてを正しく行っていると思います。コードは次のとおりです。

System.Diagnostics.Stopwatchを使用して両方のアプローチの時間を計測しましたが、コマンドラインユーティリティ(C#コードから呼び出されます)の方が高速に見えます(20〜40%?)。SqlDataReaderには、同じコードが再度呼び出されたときに高速になるという優れた機能がありますが、このアプリケーションではそれを予期していません。

私はすでにこの問題についていくつかの研究を行っています。コマンドラインユーティリティsqlcmdは、OLEDBテクノロジを使用してデータベースにアクセスすることに注意してください。それはADO.NETよりも高速ですか?特にコマンドラインユーティリティのアプローチにはプロセスの起動が含まれるため、私は本当に驚いています。本当に遅くなると思いました。

何かご意見は?

ありがとう、デイブ

0 投票する
3 に答える
3176 参照

sql-server - SQLCMDを使用してローカルファイルからバイナリデータを挿入するにはどうすればよいですか?

展開スクリプトの一部として、ファイルからSQL Serverのvarbinary(max)列にバイナリデータを挿入する必要があります。

ファイルはローカルマシン上にあり、SQLServerはリモート上にあります。

これがデータテーブルの定義です

この疑似コマンドのようなものが必要です

つまり、データはローカルファイルから取得されます。

これどうやってするの?

0 投票する
1 に答える
427 参照

visual-studio-2008 - VS DBPro でファイルを動的に読み取る (SQLCMD を使用)

VS2008 DBPro を使用しています。私のPostDeployファイルには、このような行がたくさんあります

私が望むのは、変数 ProjectName を作成して、さまざまなプロジェクト データを簡単に展開できるようにすることです。このようなもの(動作しません)

パスを指定せずにフォルダー内のすべてのファイルを読み取ることができれば、さらに良いでしょう。

0 投票する
3 に答える
1944 参照

scripting - powershell のパラメータとして「:」を含める方法は?

このような単純なpowershellスクリプトがあります

しかし、私はいつもエラーメッセージを受け取りました

引数で問題が発生したこと":"がわかりましたが、それを回避する方法がわかりません。

ありがとう、デビッド

0 投票する
1 に答える
411 参照

c# - CruiseControl.NET から sqlcmd を実行するときにパラメータが適用されない

よし、これがシナリオだ。

CruiseControl.NET (バージョン: 1.5.7256.1) は、プロジェクトを実行してデータベースを再構築します。CruiseControl.NET Windows サービスは、CC.NET 用に作成した Windows ユーザーとして実行されています。プロジェクトにはいくつかのタスクがありますが、それらはすべて正常に実行されます。Processただし、実行されるタスクの 1 つは、バッチ ファイルを生成し、.NETクラスのインスタンスを介して実行する C# で作成したコンソール ベースのユーティリティです。

バッチ ファイルは適切に生成され、プロセスは C# で正常に実行されます。ただし、実行されるバッチ ファイルは、SQLServer (バージョン 2005 SP3) の sqlcmd コマンド ライン ユーティリティを実行します。sqlcmd は期待どおりに実行されますが、sqlcmd のオプションの 1 つが適用されません... -I (引用符で囲まれた識別子をオンにします)。

例えば

奇妙なことに、これを継続的インテグレーション サーバーのコマンド プロンプトから実行すると、-I が適用された状態で実行されます。

私はとても混乱しています。sqlcmdプロセスを実行しているユーザーに十分な権限がなかったために失敗したかどうかは理解できますし、SQLServer 認証が失敗した場合に SQLServer 側で何か問題が発生したかどうかは理解できますが、それは機能しますが、オプションを適用しませんsqlcmd。不思議。