Sybase
在刪除之前檢查使用者定義的類型是否存在
該
sp_droptype
過程可用於刪除使用者定義類型。所以我
sp_droptype
在我的“乾淨”腳本中有很多這樣的呼叫,我使用sqsh -i
. 但是,sp_droptype
僅當類型確實存在時才可能有條件地呼叫,或者如果類型不存在則指示它保持沉默。有沒有辦法測試一個類型是否存在並且只
sp_droptype
在它實際存在時才呼叫?這將導致更清潔的輸出。
這與在 SQL Server 中的工作方式相同;使用以下構造樣式:
IF OBJECT_ID('dbo.MyObject') IS NOT NULL BEGIN EXEC sp_droptype 'dbo.MyObject'; END
OBJECT_ID(...)
為儲存在目前數據庫中的每個對象返回一個表示來自 sysobjects 的 object_id的整數。如果對像不存在,它將返回 NULL。另一種測試對象存在的方法:
IF EXISTS (SELECT 1 FROM systypes st WHERE st.name = 'MyType') BEGIN EXEC sp_droptype 'MyType'; END
我目前沒有能力在 ASE 中創建類型,所以我不能確定是否
OBJECT_ID()
可以工作。