問題タブ [onupdate]
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.
sql-server - 更新時の SQL Server トリガーは、テーブル全体を履歴に挿入します
Gotcha alert re where 句を尊重するように on update トリガーを調整するのに助けが必要です。
SQL Server 2008。メイン テーブルには、たとえば 12345 行あります。私の意図は、更新時に、更新が完了したときに更新中のレコードのみを履歴テーブルにコピーしたいということです。where 句で更新すると、where 句によって制限された影響を受けるレコードだけでなく、トリガーがテーブル全体を転送していることがわかります。
Production の History テーブルは Development と同じデータ構造を持たないため、Select から Prod 構造をコピーして貼り付けました。SQL Server の第一人者ではありませんが、Dev トリガーを見逃していたことに気付かずfrom insert
、Select の実際のテーブル名を Prod のトリガーに残しました。
たとえば、5 つのレコードを更新するために where 句を使用して更新を実行すると、次のようになります。
メッセージで私は2つの応答を受け取ります:
また、履歴テーブルの前後で count(*) を実行すると、12345 行すべてがmyTable_LogUpdate
テーブルに挿入されたことが示されます (これは非常に膨大であり、クリーンアップが切実に必要です)。
更新:ドライブのディスク容量が不足していたため、元の Prod トリガーを削除する必要がありました。元の投稿のトリガー コードは Dev からのものだったので、Prod で実行していた実際の問題のあるトリガー コードではなく、正しいコードが表示されていました。OPはバグではなかったので、SOの第一人者が私が抱えていた問題に答える方法はありませんでした。
OPを更新して、問題のコードが何であるかを反映し、修正が必要な場所を表記しました。履歴テーブルを再作成し、トリガーを修正したところ、from inserted
適切に機能するようになりました。
ショーンのコメントが私をこの啓示に導いてくれたことに感謝します。
android - 外部ファイルからDBを差し替える(上書きする)方法
特定のパスから古いベースを新しいベースに置き換えたい。新しいファイルをコピーするだけで、古いバージョンを削除する必要がありますか? それは機能しますが、キャッシュをクリアするかデバイスを再起動した直後にアプリが新しいベースを適用します。なんでそうなの?または私は使用する必要がありますdbHelper.onUpgrade()
か?おそらくその方が良いでしょう。しかし、paramとしてonUpgrade()
必要SQLiteDatabase
なため、引数を設定できません.dbへのファイルパスがあるので、必要な引数を設定するにはどうすればよいですか? 次のようになります。
2行目にエラーがあるError: SQLiteDatabase() is not public in SQLiteDatabase; cannot be accessed from outside package
ので、新しいオブジェクトを作成できません
sql - MS Access SQL 更新時/削除時
テストのために MS Access で SQL を練習しています。現在、テーブルに制約を作成しようとしています。
ON UPDATE カスケードで構文エラーが発生します。UPDATE が黒くなります。ここで何が問題なのかわからない?
このドキュメントも使用しました: https://msdn.microsoft.com/en-us/library/bb177889(v=office.12).aspx
SQLを介してプログラムでそれを行う方法を学ぶ必要があることに注意してください。