Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sử dụng 3 bản cập nhật trong cùng một Quy trình lưu trữ? Lỗi nhỏ

Bạn bắt đầu SP với ;WITH RatingLines ... kết nối với UPDATE đầu tiên tuyên bố, không phải những người khác. Cấu trúc này tạo ra một CTE chỉ hiển thị cho câu lệnh đầu tiên theo sau nó. Bạn có thể tìm thêm giải thích trong TN cho WITH common_table_expression (Transact-SQL) . Đặc biệt đoạn trích này từ Nhận xét làm nổi bật điều này:

Để làm cho bảng này được biết đến với tất cả các câu lệnh trong SP của bạn, hãy tạo một biến bảng hoặc một bảng tạm thời cho RatingLines thay vì.

Phác thảo bằng cách sử dụng bảng tạm thời sẽ như sau:

Select   RDA.[CTS]        AS [CTS]
              ,RDA.[B_KEY]        AS [B_KEY]
              ,RDA.[H_KEY]        AS [H_KEY]
              ,RDA.[RT_ID]        AS [RT_ID]
              ,RDA.[RT_AVGRATING] AS [RT_AVGRATING]
              ,RDDA.[RTD_COMMENT] AS [RTD_COMMENT]
INTO #RatingLines -- Create #RatingLines as temporary table
From  [DynNavHRS].[HRSDB].[HTL_RATING_ALL_DA]        RDA
Join  [DynNavHRS].[HRSDB].[HTL_RATING_DETAIL_ALL_DA] RDDA
ON    RDA.RT_ID =RDDA.RT_ID
AND   RDDA.[RTD_COMMENT] <> ''
AND   RDA.[B_KEY]='19214642';

-- Throughout the rest of the SP, use #RatingLines as your ratings table; eg:
...
INNER JOIN #RatingLines   RL1
...

-- At the end of the SP, drop the temporary table
DROP TABLE #RatingLines;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào tôi có thể viết một truy vấn để trích xuất các thay đổi riêng lẻ từ ảnh chụp nhanh của dữ liệu?

  2. Khắc phục sự cố về hiệu suất CPU của máy chủ SQL

  3. Chèn nhiều nút vào trường xml trong một truy vấn

  4. Từ .NET, tôi có thể lấy chuỗi SQL đầy đủ được tạo bởi một đối tượng SqlCommand (với Tham số SQL) không?

  5. Cách tốt nhất để triển khai Hiệp hội đa hình trong SQL Server là gì?