- - PR -
データ削除時のエラーについて
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2007-01-30 18:51
データ削除時のエラーについて
いつもお世話になっています、るぷ犬です。 現在、システムで管理されているテーブル名をひとつずつ取り出し、 そのテーブルのデータのみを削除するストアドを作成しております。 下記のソースを実行させると、 メッセージ 1087、レベル 15、状態 2、プロシージャ trun_proc、行 25 テーブル変数 "@tbl_name" を宣言してください。 のような、エラーが出力されてしまいます。 なぜ、このようなエラーが出力されるのか、 どなたか、ご教授ください。 よろしくお願いします。 なお、truncate分、delete文をコメントアウトすると、 テーブル名称一覧が出力される所までは、確認しています。 ---下記より下はソース--------------------- if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trun_proc]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop PROCEDURE [dbo].[trun_proc] GO CREATE procedure trun_proc as declare @cur CURSOR set @cur=CURSOR FOR select name from sys.tables declare @tbl_name char(256) --カーソルオープン open @cur fetch next from @cur into @tbl_name while @@fetch_status=0 begin print cast(@tbl_name as varchar) --truncate TABLE @tbl_name --WHERE CURRENT OF @cur delete from @tbl_name fetch next from @cur into @tbl_name end close @cur deallocate @cur go |
|
投稿日時: 2007-01-30 22:24
動的SQL用の変数を用意して、truncate/delete文を動的に組み立てて、
それを実行しないと駄目じゃないかな。 #SQLServer2000? 環境くらい書きましょうよ。 |
|
投稿日時: 2007-01-31 13:57
お返事ありがとうございます。
環境はSQR SERVER2005です。 書き忘れていました。すみません。 動的SQLについて、調べてみます。 ありがとうございました。 |
1
