2009-12-04 57 views

Trả lời

15

Cột được tính không thể tham chiếu các cột được tính toán khác. Mặc dù bạn phải có khả năng lặp lại biểu thức mà bạn muốn tham khảo. From MSDN:

Cột được tính được tính từ biểu thức có thể sử dụng các cột khác trong cùng một bảng. Biểu thức có thể là tên cột không liên quan, hằng số, hàm và bất kỳ kết hợp nào trong số này được kết nối bởi một hoặc nhiều toán tử. Biểu thức không thể là truy vấn phụ.

Tôi cũng nên thêm rằng nếu điều này hoạt động như bạn mong muốn, nó sẽ trình bày tất cả các loại vấn đề mới mà bạn phải giải quyết. Hiện tại, các cập nhật trên nhiều cột/hàng xuất hiện song song và nguyên tử.

Do đó, việc sử dụng cột được tính trong phép tính của bạn sẽ không có ý nghĩa bởi vì nó không chính xác có giá trị .... Nếu có, bạn sẽ sử dụng giá trị cũ, chưa được cập nhật.

Nếu bạn thực sự muốn tránh lặp lại các biểu hiện, bạn có thể làm điều này trong một kích hoạt, mặc dù tôi mạnh mẽ yêu cầu bạn không làm điều đó. Gây nên không vui và chỉ nên được những người rất hiểu biết sử dụng trong những trường hợp hiếm hoi.

+0

_... nó sẽ trình bày tất cả các loại vấn đề mới ..._ Vấn đề duy nhất sẽ ngăn chặn tham chiếu vòng tròn (trong đó hai cột được tính tham chiếu lẫn nhau) sẽ phải ngăn chặn anyways cho máy chủ hỗ trợ, vì nó sẽ phải xác định thứ tự để tính toán các cột. – Trisped

6

Bạn phải xác định số against the base columns in the table.

computed_column_expression Là biểu thức xác định giá trị của một cột được tính . Cột được tính là một cột ảo không phải là được lưu trữ trên thực tế trong bảng, trừ khi cột được đánh dấu CÓ LỆNH. Cột được tính từ biểu thức sử dụng các cột khác trong cùng một bảng . Ví dụ: cột được tính có thể có định nghĩa: giá AS giá * qty. Biểu thức có thể là tên cột không liên quan, hằng số, chức năng, biến và bất kỳ sự kết hợp nào trong số này được kết nối bởi một hoặc nhiều toán tử khác. Biểu thức không thể là truy vấn phụ hoặc chứa bí danh loại dữ liệu.

Mặc dù bạn có thể cấu trúc lại cả hai để sử dụng cùng một UDF vô hướng để chuyển đổi dễ dàng hơn và đảm bảo tính nhất quán của logic. cuối cùng.

Các vấn đề liên quan