2012-02-08 39 views
0

我有些新來編寫SQL,我知道我可以寫一個存儲過程使用可選參數。我如何指定可選參數,但強制要求至少有一個可選參數。這可能嗎?使用插入存儲過程中使用可選參數

我希望能夠使用存儲過程來插入行,其中有一些類型的標誌來表明它是一個什麼樣項的記錄表。因此至少應將其中一個標誌設置爲真(1)。

+0

這是對MySQL或T-SQL?你已經用兩種方式標記了問題。 – 2012-02-08 22:31:04

+0

我在Microsoft SQL Server Management中創建一個存儲過程。就像我說的,我對這件事很陌生。隨意編輯標籤。說實話,我不知道並且霰彈槍。 – PAULDAWG 2012-02-08 22:34:33

回答

2

我認爲在這種情況下,最好的方法是定義只有一個參數,例如ENUM類型,巫婆將代表「標誌的女巫必須被設置爲true」。這不會是一個optionnal參數,因爲你的標誌中至少有一個被設置爲true。 日誌表中的標誌列必須是DEFAULT false或DEFAULT NULL。

您將使用IF語句在程序中相應的標誌設置爲1,在你插入記錄的值(你應該申報每個標誌一個臨時變量,並設置相應的標誌爲1)。

(Additionnaly,如果你想你的約束日誌條目至少有一個標誌爲1,您可以將之前寫入和BEFORE UPDATE觸發器。)

+0

我發佈後我其實想到了這個。謝謝,我很可能會採用這種方法。 – PAULDAWG 2012-02-08 22:35:45