問題タブ [sql-scripts]

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 投票する
1 に答える
559 参照

c# - パラメータ化された.sqlコマンドの実行

.sqlファイルにSQLスクリプトがあります。このように定義されたパラメータがいくつかあります

次に、このスクリプトを.batスクリプトで実行します。

構成ツールの一部としてこの機能を実装するタスク、つまり物理dbファイルを作成してデータベースに添付するタスクが割り当てられました。後で、データベーステーブル、ストアドプロシージャなどの作成も含めます。これらは、現在、別の.sqlスクリプトで定義されています。

理想的には、構成ツールがsqlcmdに依存せず、スクリプトをインプロセスで実行するようにします(たとえば、SqlCommandを使用して)。これにより、sqlcmdの出力を解析するのではなく、標準のエラー処理(例外)を使用できるようになります。

今、私はこれに取り組む方法が少しわかりません。同じタスクを実行する2つの異なるSQLクエリを維持せずに、.batスクリプトを引き続き使用できるように、既存のSQLスクリプトを再利用できるようにしたいと考えています。

スクリプトの1つには、いくつかの場所にGOが含まれています。SqlCommandではこれが許可されていないことを理解しています。また、SqlParameterを使用して$(CONFIG_DBPATH)などの値を設定できるかどうかもわかりません(実際、できないことはほぼ確実です)。

だから私の質問は、このシナリオに取り組むための推奨される方法は何ですか?GOを使用して.sqlコマンドを実行するにはどうすればよいですか。また、.batファイルとマネージコードの両方からスクリプトを使用できるように変数を指定するにはどうすればよいですか。1つのオプションは、スクリプトがコードから実行されるときにスクリプトを「ウォッシュ」し、GOなどを削除し、変数の処理方法を変更することだと思います。しかし、もっと良いオプションはありますか?

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

sql - 複合キー列タイプをvarcharからnvarcharに変更するにはどうすればよいですか?

すべてのvarchar列をnvarcharタイプに変更する必要があります。このスレッドSQLServerの助けを借りてスクリプトを生成しました-データベース列をvarcharからnvarcharに更新するスクリプト(まだnvarcharでない場合)

ただし、このスクリプトでは複合主キー列を変更できません。テーブルには多くの複合キーがあるため、これを手動で行うことはできません。

varchar複合キーからnvarcharへの変更をスクリプト化する方法はありますか?

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

sql - SQL Server クエリ オプティマイザーから複数のスクリプトを生成する

調べてみましたが、この質問に対する答えが見つからなかったので、質問することにしました。そのため、いくつかの長いストアド プロシージャで SQL Server クエリ オプティマイザを使用しています。オプティマイザーが完了すると、統計とインデックスを作成するための多くの提案が得られますが、一度に 1 行ずつ表示されます。

すべてのスクリプトを一度に作成する方法はありますか? 次に、各行をクリックしてスクリプトを作成し、クリップボードにコピーしてから実行する必要があります

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

sql - クエリ ヘルプ: 親項目と子項目の合計

[編。注:このSOの質問に関連しています。問題が根本的に変化し、以前の質問/回答がまだ有効であるため、質問を編集しませんでした]

ビューを作成する最善の方法についてのアドバイスを探しています。以前の問題からの現在のクエリは機能するようになりましたが、親/子アイテムのアイデアは考慮されていません。

関連するデータ構造

ゴール

簡単に言えば、私は誰かに作業指示書番号を入力してもらい、作業指示書の情報に加えて、すべての子作業指示書 (タスク作業指示書とも呼ばれます) の人件費と材料費の概要を含むレポートを引き出します。

したがって、次を返すビューが必要です。

  • その作業指示書に関する標準情報 (WONUM によって ID 化) -- 説明、場所など。
  • 子タスク作業指示書ごとの合計労働時間 (LABORHRS の合計)
  • WPLABOR からの総人件費 (LABORHRS*RATE の合計) その子タスク作業指示書ごと
  • WPITEM からの合計項目原価 (ITEMQTY*UNITCOST の合計) その子タスク作業指示書ごと

子タスク作業指示書は、親 = 最初の作業指示書の WONUM および ISTASK=1 の作業指示書です。

使用する:

これを次の方法で呼び出すことができるようにしたいと思います。

これにはサブクエリと結合の組み合わせが含まれることは知っていますが、関係を構築するための最良の方法などはわかりません。

現在のクエリ

現在のクエリの問題

子タスクの作業指示書を考慮しないため、労働やアイテムのレコードは返されず (親に直接関連付けられているものはありません)、労働とアイテムの合計は常に空です。

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

sql - SQLスクリプトエラーのログ

次のコマンドを使用したpostgresファイルのSQLスクリプトがあります。

このコマンドのエラーを処理したい(エラーをログに記録する)

エラー:重複するキー値に違反しています。

コマンドはCOPY値を返しますか?いいえの場合、シェルスクリプトの出力をログに記録する方法は?

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

sql-server-2005 - 無効な列名 'XXXXXXXX'

「abc.sql」というSQLスクリプトがあり、sqlcmdを使用してバッチファイルから呼び出しています

  1. のようなバッチスクリプトを呼び出す

    /li>
  2. バッチで

    /li>

次に、次のようなSQLスクリプトを呼び出します

  1. SQL スクリプト内

    /li>

しかし、バッチスクリプトを呼び出すと、「無効な列名 'XXXXXXXX'」というエラーが発生します

ここで、「XXXXXXX」は var1 の値です。私が間違っていること。何か案が。

繰り返しますが、スカラー変数 @node および @serv が宣言および設定されているにもかかわらず、... というエラーが表示されますMust declare the scalar variable "@node"

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

oracle - Oracle SQL スクリプト スプール ファイルの作成方法

プログラムの結果のスプールについて質問があります。サンプル SQL スクリプトは次のようになります。

上記のスクリプトは機能しませんが、begin end ブロックでいくつかの値を計算し、それらの結果をスプールしたい場合に、このようなことをしたいと考えています。

ありがとう。

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

sql - SQL Serverテーブルとストアドプロシージャを1つのスクリプトで作成しますか?

キーと制約を使用して2つのデータベーステーブルを問題なく設定しているSQLスクリプトがあります。コード全体を含めることはしませんが、その「スケルトン」は次のようになります。

ただし、このスクリプトにストアドプロシージャを追加しようとして立ち往生しています。理想的には、これをすべて同じスクリプトに含めたいと思います。次のストアドプロシージャを上記のスクリプトに含める方法を教えてもらえますか?

スクリプトの最後に配置してみましたが、BEGIN、END、GOタグを付けて、付けずに試しましたが、「PROCEDUREの近くの構文が正しくありません」というエラーが表示され続けます。

0 投票する
7 に答える
41694 参照

sql - バッチファイルを使用して複数の SQL スクリプトを実行する方法は?

10+ を取得したケースがありSQL scriptます。

すべてのスクリプトを 1 つずつ実行したくありません。

ですべてのスクリプトを連続して実行できる方法はありますかSQL Management studio

この投稿を見つけました。バッチ ファイルを作成する方が簡単なようです。

必要なのはこれだけです:

サーバー名とデータベース名を置き換えていますが、機能していないようです。

何か案は?

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

sql - 列のデータ型を float から double 精度に条件付きで変換する

Firebird ベースの SQL データベースを再設計しました。このプロセスの一環として、HARMONICS という名前の新しいテーブルを作成しました。GUI ベースの管理ツールを使用して、次の列を作成しました。

その後、いくつかのテスト データを新しいエンティティに挿入しました。変更には他のテーブルも含まれていましたが、これらは私の問題とは関係がないため、ここではリストしません。次に、リレーショナル データベースの新しい構造で動作するように、アプリケーションをカスタマイズしました。

アプリケーションが完全にテストされたとき、Upgrader という名前のユーティリティを拡張しました。Upgrader のタスクは、さまざまなバージョンの SQL データベース間で変換することです。このタスクを達成するために、私は SQL スクリプトを書きました。Firebird の公式サイト ( http://firebirdsql.org/manual/migration-mssql-data-types.html ) の誤ったガイドに従って、上記のテーブルを作成するための次のコマンドを作成しました。

Firebird のデータ型 "Float" は倍精度浮動小数点 (C のデータ型 "double" と同じ) だと思いました。最終的に自分が間違っていることがわかりましたが、これは Upgrader ユーティリティの公式リリースを作成した後でした。そのため、現在、2 つのバージョンのデータベースが流通しています。1 つは単精度浮動小数点数を使用し、もう 1 つは倍精度浮動小数点数を使用しています。

テーブルHARMONICSの列の実際のデータ型をチェックするSQLスクリプトを探しています。これが倍精度の場合、スクリプトは何もしません。これが単精度の場合、スクリプトはデータ型が「Float」の列を「倍精度」に変換し、既存のすべてのデータを保持します。ポイントは、どちらの場合もスクリプトがエラーを返さないことです。これは可能ですか?はいの場合、どのように?