2011-11-07 7 views
23

Tôi có cơ sở dữ liệu SQL Server 2008. Cơ sở dữ liệu này có một Bảng gọi là "Sách". "Sách" có các thuộc tính sau:Tạo cột được tính trong SQL Server 2008

  • ID (int)
  • Tiêu đề (nvarchar (256))
  • PublishDate (datetime)

tôi cần phải tạo ra một cột tính được gọi là " AgeInMinutes ". Tôi không quen thuộc với các cột được tính toán. Tôi hiểu khái niệm, nhưng tôi không chắc chắn làm thế nào để làm điều đó. Trong phòng thu quản lý SQL Server, trong khu vực "Thuộc tính cột", tôi thấy một thuộc tính được gọi là "(Công thức)" trong phần Thiết kế bảng. Tôi cho rằng tôi cần phải tính toán ở đây. Tuy nhiên, tôi không chắc chắn nên đặt gì ở đây. Ai đó có thể giúp tôi không?

Cảm ơn bạn!

+0

Bạn định sử dụng cột được tính toán này để làm gì? Không sử dụng nó trong mệnh đề 'WHERE' vì bạn sẽ kết thúc bằng việc quét toàn bộ. –

Trả lời

38

Bạn có thể xác định các cột trong bạn CREATE TABLE như:

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

Ngoài ra, chỉ cần làm

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

Tôi nghĩ rằng nó có giá trị làm cho nó thêm rõ ràng rằng trong định nghĩa CREATE TABLE, bạn không chỉ định một kiểu dữ liệu. Tôi đã bỏ qua điều đó lúc đầu. – hurleystylee

0

Sửa cột tính thông qua SSMS. Nhấp chuột phải vào bảng và chọn Thiết kế rồi nhấp vào cột được tính rồi xem trong thuộc tính cột có một tùy chọn như thế nào. Đặc tả cột được tính toán ở đó bạn có thể thay đổi COLUMN COMPUTED.