Har du testat att lägga ett semikolon framför din With påstående? (t.ex. ;With q As )
Några allmänna anmärkningar:
- Du måste köra detta i en fråga, inte designern. Det låter som att du har fixat det.
- Räkna upp kolumnerna istället för att använda
*. Dvs i exemplet nedan ersätter du Col1, Col2 med de faktiska kolumner du vill ha prefixet av tabellen varifrån de kom. - Ange
use DatabaseNameöverst i ditt skript följt av en radbrytning, följt avGO, följt av ytterligare en radbrytning. - Om den enda satsen före
Withuttalandet ärGOmellan dinusesatsen och frågan, då behövs inget semikolon eftersom det är den första satsen i partiet.
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