編輯:函數創建失蹤,有關如何檢查SQL Server對象的存在並刪除它?
對不起,我有去一個T-SQL請求:
DECLARE @IsSomething bit
SET @IsSomething = 0
IF /some tests/ SET @IsSomething = 1
EXEC('
CREATE FUNCTION IsSomething()
RETURNS bit
AS
BEGIN
RETURN ' + @IsSomething + '
END')
當然,如果我跑了兩遍,我得到
There is already an object named 'IsSomething ' in the database.
我該怎麼做這樣的事情:
IF EXIST @IsSomething DESTROY @IsSomething // (Pseudo bad code)
如果我聲明@IsSomething兩次,我會得到:'變量名'@IsSomething'已經被聲明。變量名稱在查詢批處理或存儲過程中必須是唯一的。'就像一個例子,你是否與條件/迴應不匹配?如果是這樣,這也許可以解釋爲什麼人們發現這個問題有點令人困惑...... – 2009-07-16 21:13:15
所有這些 - 除了變量名稱 - 正是我所做的/我得到的錯誤。再進一步,我也有一個「SET @IsSomething = 1」,我將這個問題加入 – marcgg 2009-07-16 21:15:44
@IsSomething不是數據庫對象;這是一個T-SQL變量。如果你有一個關於現存對象的錯誤,那個對象是用CREATE [table |創建的查看| index | etc]語句,而不是DECLARE。 – 2009-07-16 21:18:40