2013-03-17 95 views
0

我需要實施試用版許可證到期功能。我已創建Membership表具有以下的列:根據一列中的值更新SQL Server 2008數據庫表的列數

  • Registration_Date
  • Trial_Expiration_Date
  • Trial_Expired(值:Y/N)。

試用期限兩週。

能否請你幫我寫個stored procedure到:

  1. 更新列Trial_Expiration_Date = Registration_Date + 14.如註冊成功,我會在"Registration_Date"列一旦插入值。

  2. 如果今天與Trial_Expiration_Date的日期相差爲0,則更新字段"Trial_Expired"'Y'

我正在使用SQL Server 2008數據庫。

回答

0

您可以在更新語句中使用CASE表達

UPDATE Membership 
SET Trial_Expiration_Date = DATEADD(MM, 14, Registration_Date), 
     Trial_Expired = 
      CASE 
      WHEN DATEADD(MM, 14, Registration_Date) < GETDATE() THEN 'Y' 
      ELSE 'N' 
      END 
WHERE ... -- some condition here 
+0

Afaik您必須使用'DateAdd'函數將日期添加到日期。此外,「Trial_expired」列不會自動更新。 – alzaimar 2013-03-17 19:29:02

+0

@alzaimar你是對的,先生。 – 2013-03-17 19:44:41

0

您可以爲Trial_Expired,而不是創建一個計算字段。

CREATE TABLE Membership 
    (
    Registration_Date DATE, 
    Trial_Expiration_Date DATE, 
    Trial_Expired AS CASE 
      WHEN Trial_Expiration_Date < GETDATE() THEN 'Y' 
      ELSE 'N' 
      END 
    ) ON [PRIMARY] 
相關問題