Bạn đã thử viết trước dấu chấm phẩy trước With
chưa tuyên bố? (ví dụ:;With q As
)
Một số lưu ý chung:
- Bạn phải chạy điều này trong một truy vấn không phải là trình thiết kế. Có vẻ như bạn đã khắc phục được điều đó.
- Liệt kê các cột thay vì sử dụng
*
. Tức là, trong ví dụ dưới đây, hãy thay thế Col1, Col2 bằng các cột thực tế mà bạn muốn có tiền tố trong bảng từ khi chúng xuất hiện. - Đặt
use DatabaseName
ở đầu tập lệnh của bạn, sau đó là dấu ngắt dòng, theo sau làGO
, tiếp theo là một ngắt dòng khác. - Nếu câu lệnh duy nhất trước
With
câu lệnh làGO
giữause
của bạn và truy vấn, sau đó không cần dấu chấm phẩy vì đây là câu lệnh đầu tiên trong lô.
use DatabaseName GO WITH q AS ( SELECT TableName.Col1, TableName.Col2,... , ROW_NUMBER() OVER (PARTITION BY dbo.[1_MAIN - Contacts].Contact_ID ORDER BY dbo.[1_MAIN - Contacts].Contact_ID ) AS rn FROM dbo.[1_MAIN - Contacts] INNER JOIN dbo.Referral ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.Referral.Referral_ID INNER JOIN dbo.prov_training_records ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.prov_training_records.Contact_ID LEFT OUTER JOIN dbo.Resource_Center ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.Resource_Center.Contact_ID FULL OUTER JOIN dbo.Providers ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.Providers.Contact_ID ) SELECT * FROM q