Hai provato ad anteporre un punto e virgola davanti al tuo With dichiarazione? (es. ;With q As )
Alcune note generali:
- Devi eseguirlo in una query non nel designer. Sembra che tu l'abbia risolto.
- Enumera le colonne invece di usare
*. Ad esempio, nell'esempio seguente sostituisci Col1, Col2 con le colonne effettive che desideri siano precedute dalla tabella da cui provengono. - Inserisci
use DatabaseNamenella parte superiore dello script seguito da un'interruzione di riga, seguita daGO, seguito da un'altra interruzione di riga. - Se l'unica istruzione precedente a
Withl'istruzione è ilGOtra il tuouseistruzione e la query, quindi non è necessario alcun punto e virgola poiché è la prima istruzione nel batch.
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