私はストアドプロシージャを使用していくつかのデモデータを転送するためのきれいな方法を探しています。転送したいデータは日付タイプです。私のアプリの性質上、私のアプリの一部のデータは、データ内の特定の日付が将来表示される場合にのみ表示されます。私はこれが理にかなってほしい。 :Sストアドプロシージャを使用してデモデータ日付を転送する方法はありますか?
データベースが拡張されて以来、デモユーザーアカウントに属するデータベースのすべてのテーブルにすべての日付を転送するストアドプロシージャを作成することを考えていました。デモデータが最後に転送された日付も記録します。ストアドプロシージャは、デモデータのログイン時に実行され、デモデータが転送された最後の日付と現在の日付との間の差異が一定の時間差(30日など)を満たしている場合は明らかです。こうすることで、スクリプトを変更する必要はありません。技術的な部分に今
:
私は、DB内のすべてのテーブルを取得するために、これを使用しています:
Select
table_name
from
Information_Schema.Tables
Where
TABLE_TYPE like 'BASE TABLE'
and table_name not like 'Report_%'
and table_name not in ('Accounts', 'Manifest', 'System', 'Users')
私は必要なものは、列を見つけ、テーブル名を反復処理するための方法です名前と列の種類。次に、datetime型の各テーブルのすべての列を更新したいとします。私はSQLでのループは理想的ではありませんが、これをサーバサイドのコードに置くのではなく、データベース呼び出しの数を最小限に抑えたいと思っています。
私はこの問題を解決するために間違った道を歩いていますか?
ありがとうございます。
どの列を先験的に増分する必要があるか分かりませんか?あなたのスキーマのすべての日付を30日までにプッシュするのは悪い考えです。誰かが来て、増分するべきではない日付列を追加すればどうなるでしょうか? –
私はJPと一緒です。データは常に変化しているので、列を変更することはできませんか?また、MySQLまたはSQL Serverを使用していますか?両方とも、内部の仕組みに関するメタデータが非常に異なっていると考えています(つまり、日時フィールドを指定する方法)。 – Eric