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
Withcâu lệnh làGOgiữausecủ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