問題タブ [stored-procedures]
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.
php - プリペアド ステートメントとストアド プロシージャ
php5 と mysql5 を使用している場合、プリペアド ステートメントよりもストアド プロシージャを使用する利点はありますか? (mysql5ストアドプロシージャから実質的なパフォーマンスの向上が得られない可能性がある場所を読んだ)
sql - ジョブのステータスを確認するにはどうすればよいですか?
ジョブをスケジュールするストアド プロシージャがあります。このジョブは完了するまでに長い時間がかかります (約 30 ~ 40 分)。このジョブのステータスを知る必要があります。以下の詳細は私を助けるでしょう
1) 将来に予定されていて、まだ開始されていないすべてのジョブのリストを表示する方法
2) 実行中のジョブのリストと実行中からの時間範囲を表示する方法
3) ジョブが正常に完了したか、エラーのために途中で停止したかを確認する方法。
c# - C#-SQL:StoredProcedureのバッチを実行するには?
編集:
私の問題はもう問題ではありません: パフォーマンス テストをやり直しましたが、致命的な愚かなエラーが発生しました: ミリ秒から秒を取得するために x1000 を忘れていました :/ 申し訳ありません。
情報:
- PC からローカル ネットワーク上のデータベース サーバーに 1 秒あたり約 1900 の更新を行っています。
- プログラムが DB と同じマシン上にある場合、毎秒 3.200 の更新。
- データベース サーバー上の PC から 1 秒あたり 3.500 の更新 新しい SQLConnection を再作成して再度開くことはありません。
- バッチ テキストで 1 秒あたり 5.800 の更新。私の 10.000 行の場合、5 秒かかる場合、私のプログラムでは問題ありません。ご心配をおかけして申し訳ありません。
実際には、SQL ストアド プロシージャを使用してデータベースに行を作成し、SQL インジェクションを回避しています。C# では、次のメソッドがあります。
挿入する行が 1 つまたは 2 つある場合に最適です。しかし、1,000 人のユーザーと 10,000 の製品と 5,000 のペットを作成する必要がある場合、それは最善の解決策ではありません。ネットワーク トランスポートで膨大な時間を失うことになります。
チェックインしなくても、限られた量のコールバックしか使用できないと思います。だから私は10.000回呼び出したくありません:
もう 1 つの方法は、バッチ テキストを作成することですが、SQL インジェクションのリスクがあります (それは醜いです)。
.Net でそれを管理する「SqlCommandList」オブジェクトはありますか? データベースに大量の書き込みを行うにはどうすればよいですか? そのための良いパターンは何ですか?
sql - SQL Server のカスタム日付/時刻形式
テーブルから列を選択し、ResultSet に 2 つの列を追加するストアド プロシージャを作成しようとしています。これらの 2 つの余分な列は、日時フィールドであるテーブル内のフィールドの変換の結果です。
日時形式フィールドの形式は「YYYY-MM-DD HH:MM:SS.S」です。
次の形式にする必要がある 2 つの追加フィールド:
- DDMMM
- HHMMT、ここで、T は午前を表す「A」と午後を表す「P」です。
例: フィールドのデータが「2008-10-12 13:19:12.0」の場合、抽出されたフィールドには次のものが含まれている必要があります。
- 1210月
- 0119P
CONVERT 文字列形式を使用してみましたが、取得したい出力と一致する形式はありません。CONVERT を介してフィールド データを抽出し、次に REPLACE を使用する方向に沿って考えていますが、確信が持てないため、ここで何らかの助けが必要です。
ストアドプロシージャに精通している人は、ここで私を助けてくれますか? ありがとう!
c# - SQLストアドプロシージャの一時テーブルから返されたデータをC#クエリコンポーネントに認識させるにはどうすればよいですか?
以下のようなストアド プロシージャを作成しました (この短縮バージョンを使用して、問題を解決しようとしています)。
VS2008 の C# コードから、クエリ コンポーネントを[既存のストアド プロシージャを使用] オプションで使用して、これを DataTable / DataGridView に接続して結果を表示しようとしています。
ただし、一時テーブルから選択しているため、Query コンポーネントのプロパティで、Visual Studio はストアド プロシージャから返される列を表示しません。SP は実際のスキーマに基づいていないため、使用されているデータ型を判断するのに問題があると思います。
実際のテーブルから選択するさまざまなストアド プロシージャに接続すると、列が正しく表示されます。
誰かがこれについて知っていますか?どのような種類のデータが返されるかを明示的に述べるためにどこかに追加できるヒントはありますか?
前もって感謝します。
sql - オプションで列を検索するストアド プロシージャを作成するにはどうすればよいですか?
私は、従業員データベースを照会する仕事用のアプリケーションに取り組んでいます。エンド ユーザーは、標準の名前/部門の基準に基づいて検索できる機能を望んでいますが、健康部門で働く "James" というファーストネームを持つすべての人を柔軟に照会できることも望んでいます。私が避けたいことの 1 つは、単純にストアド プロシージャにパラメーターのリストを取り、実行する SQL ステートメントを生成させることです。これは、内部レベルでの SQL インジェクションへの扉を開くためです。
これはできますか?
sql-server - ストアドプロシージャの結果セットから列を選択します
80列と300行を返すストアドプロシージャがあります。それらの列のうちの2つを取得するselectを作成したいと思います。何かのようなもの
上記の構文を使用すると、エラーが発生します。
「無効な列名」。
ストアドプロシージャを変更するのが最も簡単な解決策であることはわかっていますが、記述していなかったため、変更できません。
私がやりたいことをする方法はありますか?
結果を入れるための一時テーブルを作成することもできますが、80列あるため、2列を取得するためだけに80列の一時テーブルを作成する必要があります。返されるすべての列を追跡することは避けたかったのです。
WITH SprocResults AS ....
Markの提案どおりに使用してみましたが、2つのエラーが発生しましたキーワード「EXEC」の近くの構文が正しくありません。
')'の近くの構文が正しくありません。テーブル変数を宣言しようとしましたが、次のエラーが発生しました
挿入エラー:列名または指定された値の数がテーブル定義と一致しません
試してみる
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
とエラーが発生します:キーワード「exec」の近くの構文が正しくありません。
c# - List<> を SQL ストアド プロシージャに渡す
データベース内の特定のレコードに複数のアイテムをロードしなければならないことがよくありました。例: Web ページには、1 つのレポートに含めるアイテムが表示されます。これらはすべてデータベース内のレコードです (レポートはレポート テーブル内のレコードであり、アイテムはアイテム テーブル内のレコードです)。ユーザーは Web アプリを介して 1 つのレポートに含める項目を選択しており、3 つの項目を選択して送信するとします。このプロセスでは、ReportItems (ReportId,ItemId) というテーブルにレコードを追加することで、これら 3 つのアイテムをこのレポートに追加します。
現在、コードで次のようなことを行います。
そしてこれはストアドプロシージャで:
関数は整数の 1 列のテーブルを返します。
私の質問はこれです: このようなものを処理するためのより良い方法はありますか? データベースの正規化などについて質問しているわけではないことに注意してください。私の質問は特にコードに関連しています。
sql - SQLトリガーは同期または非同期ですか?
挿入トリガーを持つテーブルがあります。ストアド プロシージャからの 1 つの挿入ステートメントでこのテーブルに 6000 レコードを挿入すると、ストアド プロシージャは挿入トリガーが完了する前に戻りますか?
私の考えが正しいことを確認するために、insert ステートメントは 1 つしかないため、トリガーは 1 回だけ呼び出す必要があります (「呼び出された」という言葉が適切ではないことはわかっています)。
私の主な質問は: トリガーが完了していなくても、sproc は終了しますか?
.net - Formview Insert テンプレートが .NET 2.0 でストアド プロシージャを実行した後、inputoutput パラメータ値を取得するにはどうすればよいですか?
通常どおり、テーブル アダプターを介して挿入ストアド プロシージャを実行するフォームビューがあります。挿入が失敗した場合を除いて、sp の error_msg という出力パラメータが次のように設定されます。
この値をキャプチャして、ユーザーの画面に表示するにはどうすればよいですか? 私はそれを見つけることができないようです。