私はすべてのテーブルとストアドプロシージャをスキーマにドロップしたいのですが、誰もこれを行う方法を知っていますか?可能であればデータベース全体を削除しないようにしたいと思います。sybase:可能であれば、すべてのテーブルを削除し、procsを保存するにはどうすればよいですか?
答えて
一連のドロップでsysobjectsテーブルを繰り返し処理し、必要なすべてのオブジェクトを体系的に削除できます。
declare tables cursor
for select name from sysobjects where type='U'
go
declare @name varchar(255)
open tables
fetch tables into @name
while (@@sqlstatus = 0)
begin
exec("drop table "+ @name)
fetch tables into @name
end
close tables
deallocate cursor tables
はい、それはカーソルを必要とし、それがつもりは少し遅くなることだが、それはかなりのデータベースをきれいに拭く必要があります。あなたは PまたはXPを持っており、ループ のドロップ手順 を使用するストアドprocesuresため ループ
詳細情報:
"drop table @name"の部分が問題を起こしているので、 "declare"の後ろに "go"を追加しなければなりませんでした。私はそれが働くと答えを受け入れるとすぐに私のスクリプトを投稿します、助けてくれてありがとう、このポストは私にとって非常に教育的でした。 –
ヘルプはstackoverflowのためのものです:)上記のスクリプトを変更してより多くのことを手助けするように変更しました。トリガを動的に落とすために欠けている "go"とexecのイディオムが含まれています。 – Jean
ジーン、エグゼクティブはトリックをしました。スクリプトは私のために働いて、データベースをきれいに拭きます。私は%s/trigger/table/gでした。 –
理由だけでスキーマを落とさないでこの
USE ban_des_rsp1
go
IF OBJECT_ID('rspman.sp_eliminar_base') IS NOT NULL
BEGIN
DROP PROCEDURE rspman.sp_eliminar_base
IF OBJECT_ID('rspman.sp_eliminar_base') IS NOT NULL
PRINT '<<< FAILED DROPPING PROCEDURE rspman.sp_eliminar_base >>>'
ELSE
PRINT '<<< DROPPED PROCEDURE rspman.sp_eliminar_base >>>'
END
go
create proc rspman.sp_eliminar_base
as
declare @w_id int, @w_name varchar(255), @w_rowcount int, @w_sql varchar(2000)
select @w_id = 0
set rowcount 0
while (@w_id>=0)
begin
set rowcount 1
select @w_sql = 'alter table ' + object_name(tableid) + ' DROP CONSTRAINT ' + object_name(constrid)
from sysconstraints
select @w_rowcount = @@rowcount
if @w_rowcount<>1
begin
set @w_id = -1
end
else
begin
exec(@w_sql)
end
end
set rowcount 0
set @w_id = 0
while (@w_id>=0)
begin
set rowcount 1
select @w_id = id, @w_name =name
from sysobjects
where type = 'V'
and id > @w_id
order by id
select @w_rowcount = @@rowcount
set rowcount 0
if @w_rowcount<>1
set @w_id = -1
else
begin
if (@w_name like 'gen%' or @w_name like 'vis%')
begin
select @w_sql = 'drop view ' + @w_name
exec(@w_sql)
end
end
end
set rowcount 0
set @w_id = 0
while (@w_id>=0)
begin
set rowcount 1
select @w_id = id, @w_name =name
from sysobjects
where type = 'U'
and id > @w_id
order by id
select @w_rowcount = @@rowcount
set rowcount 0
if @w_rowcount<>1
set @w_id = -1
else
begin
select @w_sql = 'drop table ' + @w_name
exec(@w_sql)
end
end
set rowcount 0
set @w_id = 0
while (@w_id>=0)
begin
set rowcount 1
select @w_id = id, @w_name =name
from sysobjects
where type = 'P'
and id > @w_id
order by id
select @w_rowcount = @@rowcount
set rowcount 0
if @w_rowcount<>1
set @w_id = -1
else
begin
if @w_name like 'pro%'
begin
select @w_sql = 'drop proc ' + @w_name
exec(@w_sql)
end
end
end
go
EXEC sp_procxmode 'rspman.sp_eliminar_base', 'unchained'
go
IF OBJECT_ID('rspman.sp_eliminar_base') IS NOT NULL
PRINT '<<< CREATED PROCEDURE rspman.sp_eliminar_base >>>'
ELSE
PRINT '<<< FAILED CREATING PROCEDURE rspman.sp_eliminar_base >>>'
go
- 1. レルムで2つのテキストファイルを保存して削除するにはどうすればよいですか?
- 2. リファレンスを保存してJSONプロパティを削除するにはどうすればよいですか?
- 3. Javascriptコンソールをクリアしてメモリに保存されているものをすべて削除するにはどうすればよいですか?
- 4. Laravel 5.5でセッションデータを保存および削除するにはどうすればよいですか?
- 5. ファイルパスのテーブルを保存するにはどうすればいいですか?
- 6. 未保存の管理オブジェクトを安全に削除するにはどうすればよいですか?
- 7. テーブルをスクロール可能にするにはどうすればいいですか?
- 8. すべてのフィールドを引用してCSVを保存するにはどうすればよいですか?
- 9. メソッドでコントロールステートメントを使用するにはどうすればよいですか?可能であれば
- 10. Twilioで受信したすべてのメッセージを削除するにはどうすればよいですか?
- 11. 反応したネイティブですべてのアプリケーションデータを削除するにはどうすればよいですか?
- 12. ローカルキャッシュで使用可能な状態を削除するにはどうすればよいですか?
- 13. 編集可能なdivにキャレットの位置を保存するにはどうすればよいですか?
- 14. テーブルのapiからコンパイルするテーブルtrデータを削除するにはどうすればよいですか?
- 15. Sybase:クエリを使用してテーブル定義を取得するにはどうすればよいですか?
- 16. モデルデータをビューのテーブルとは異なるテーブルに保存するにはどうすればよいですか?
- 17. jqueryを使用してmysqlの行テーブルを削除するにはどうすればよいですか?
- 18. Reactを使用してテーブルの行を削除するにはどうすればよいですか?
- 19. 入力フォームに削除不可能な値を追加するにはどうすればよいですか?
- 20. 親オブジェクトを削除してコレクションからDATABASEを削除するにはどうすればよいですか?
- 21. Bash:#で始まるすべてのテキストファイルを削除するにはどうすればよいですか?
- 22. Jquery_uiソート可能な位置をレールに保存するにはどうすればよいですか?
- 23. Githubから失効したブランチをすべて削除するにはどうすればよいですか?
- 24. キャッスル3.0のIContributeComponentModelConstructionですべてのプロパティインジェクションを削除するにはどうすればよいですか?
- 25. Docker swarmのすべてのノードでイメージを削除するにはどうすればよいですか?
- 26. 「ユーザー」に関連するすべてのレコードを削除するにはどうすればよいですか?
- 27. vC++を使用して既存のファイルを削除するにはどうすればよいですか?
- 28. キーワードが一致した後にすべてを削除するにはどうすればよいですか?
- 29. 3つの条件をテストし、すべての条件が真であれば行全体を削除するにはどうすればよいですか?
- 30. ディレクトリ内で空のファイルをすべて削除するにはどうすればよいですか?
を試してみてください?この種の操作では、一般的に、リストをループするために動的SQLが必要です。 –
できればユーザとカスタムタイプの再作成を避けたかったのです。プラス、私はちょうどこれが行われる方法が不思議です、私は確かにドロップ/再作成することができます素晴らしい方法がない場合。 –