2011-11-07 5 views
23

Mam bazę danych SQL Server 2008. Ta baza danych ma tabelę o nazwie "Book". "Księga" ma następujące właściwości:Tworzenie kolumny obliczeniowej w SQL Server 2008

  • ID (int)
  • Tytuł (nvarchar (256))
  • PublishDate (datetime)

muszę utworzyć kolumnę komputerowej o nazwie " AgeInMinutes ". Nie znam kolumn obliczeniowych. Rozumiem tę koncepcję, ale nie jestem pewna, jak to zrobić. W SQL Server Management Studio, w obszarze "Właściwości kolumny", widzę właściwość o nazwie "(Formula)" w sekcji Kreator tabel. Zakładam, że muszę wprowadzić tutaj moje obliczenia. Jednak nie jestem pewien, co tu umieścić. Czy ktoś mógłby mi pomóc?

Dziękujemy!

+0

Do czego chcesz użyć tej kolumny obliczeniowej? Nie używaj go w klauzuli "WHERE", ponieważ otrzymasz pełne skanowanie. –

Odpowiedz

38

Można zdefiniować kolumna w CREATE TABLE jak:

AgeInMinutes as (DATEDIFF(minute, PublishDate, GETDATE())

Alternatywnie, po prostu zrób

ALTER TABLE Book 
ADD AgeInMinutes as (DATEDIFF(minute, PublishDate, GETDATE()) 
+4

Myślę, że warto to jeszcze bardziej wyjaśnić, że w definicji CREATE TABLE nie określa się typu danych. Z początku to przeoczyłem. – hurleystylee

0

Modyfikuj kolumny obliczane przez SSMS. Kliknij prawym przyciskiem myszy na tabeli i wybierz Projekt, a następnie kliknij kolumnę obliczoną, a następnie zobacz w właściwościach kolumny: jest jedna opcja, na przykład. Obliczona specyfikacja kolumny tam można zmienić KOLUMNA KOMPUTEROWA.