質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

11778閲覧

MSSQL 処理の定期実行

ya_ay

総合スコア13

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2019/02/12 02:29

編集2019/02/12 03:01

SQL Server 2015 expressです。
クライアント側から都度ストアドプロシージャを実行させていただのですが、
処理に時間がかかるため、定期的にサーバー側で実行したいと思います。

insertトリガの利用を考えましたが、逆に頻度が上がりそうだったため
できれば一定時間ごとに実行したいです。

そのような機能や、記述方法があればご教示ください。

追記 2/12 12:00
データを集計し別テーブルに書き出す処理をしています。
無条件に起動しても問題ありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2019/02/12 02:48

ストアドプロシージャで行うのはどのような処理ですか? データの状況によらず、若しくはストアド内で判断している等によって、無条件に起動して良いものでしょうか?
guest

回答2

0

ベストアンサー

定周期にストアドを実行するには、1.SQL Serverの機能を利用する方法と、2.Windowsのタスクスケジューラー機能を利用する方法が考えられます。

1.SQL Server - ジョブの作成とスケジュール設定方法
2.【SQLCMD】バッチファイルからストアドプロシージャを実行する方法

後者の方がバッチファイル経由の分、他の処理との連携やファイルを扱うなどのバリエーションを考えると、良い気がします。

また、通常バックアップも定周期に取るはずですから、その仕組みがあればそちらに合わせるというのも手かと思います。

追記

メンテナンスプランをバッチで編集する

投稿2019/02/12 04:19

編集2019/02/12 05:03
sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hihijiji

2019/02/12 04:54

自分の管理しているSQL Server では BI系の処理はメンテナンスプランに入れてます。 分散すると忘れるので…
sazi

2019/02/12 05:04 編集

> hihijiji さん 追記しました。 アドバイス等ありましたらお願いします。
ya_ay

2019/02/13 01:55

Expessではエージェントが使えないためメンテナンスプランを作ることができませんでした。 バッチファイルからストアドを実行する方法を試してみたいと思います。
ya_ay

2019/02/14 11:12

test1というテーブルを削除するバッチファイルを作成し実行したところ、 テーブル 'test1' を 削除 できません。存在しないか、権限がありません。 となってしまいました。バッチファイルからではなくストアド単体で実行すると削除できることは確認しました。 ここでいう権限とはストアドの実行権限だけではないのでしょうか。ほかに権限が必要ということでしょうか。
sazi

2019/02/14 12:41

バッチファイル実行時のユーザーは、ストアド単体で実行できるユーザーと同じユーザーですか?
ya_ay

2019/02/15 01:40 編集

単体実行時はサーバーのにadminでログインしておりsysadiminで実行していました。 バッチファイルに記述のユーザーにはストアドの実行権限は付与してありましたが駄目でした。 そこで セキュリティからユーザのプロパティでデータベースに"セキュリティ保護可能なリソース"の明示的の部分で"制御"を"許可"にしたら正常にできました。 このような設定であっているのでしょうか。初心者で権限の与え方もいまいちわかっていません。
ya_ay

2019/02/15 07:37

ありがとうございます。実行はできたのでこれから理解を深めます。
guest

0

Windows のタスクスケジューラ機能を使って、
ストアドプロシージャを呼び出す SQL を実行するバッチを書いて実行させる、とかですかね。

SQL Server 単体ではしないほうがいいでしょう。

投稿2019/02/12 02:33

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問