I have this query that i should make it run on SQL Azure.
WITH RecursiveTable ( [OrganizationUnitID] )
AS ( SELECT OrganizationUnitID
FROM OrganizationUnit AS ou ,
OrganizationUnitDefinition oud
WHERE ( ParentOrganizationUnitID IN (
SELECT val
FROM CustomSPLIT(@strOUs, ',') )
OR OrganizationUnitID IN (
SELECT val
FROM CustomSPLIT(@strOUs, ',') )
)
AND ( ou.OrganizationUnitDefinitionID = oud.OrganizationUnitDefinitionID )
UNION ALL
( SELECT ou.OrganizationUnitID
FROM OrganizationUnit AS ou
INNER JOIN RecursiveTable AS rt ON ou.ParentOrganizationUnitID = rt.OrganizationUnitID ,
OrganizationUnitDefinition AS oud
WHERE ou.OrganizationUnitDefinitionID = oud.OrganizationUnitDefinitionID
)
)
SELECT DISTINCT -- this
[OrganizationUnitID] -- won't work
INTO #tempEmployeeByOUIDs -- on azure
FROM RecursiveTable
knowing that the ‘SELECT INTO’ won’t work on Azure, i modified it as the below, but it is giving me the following
Incorrect syntax near ‘RecursiveTable’.
CREATE TABLE #temp ([OrganizationUnitID] CHAR(36))
--DROP TABLE #temp
INSERT INTO #temp
WITH RecursiveTable ( [OrganizationUnitID] )
AS ( SELECT OrganizationUnitID
FROM OrganizationUnit AS ou ,
OrganizationUnitDefinition oud
WHERE ( ParentOrganizationUnitID IN (
SELECT val
FROM CustomSPLIT(@strOUs, ',') )
OR OrganizationUnitID IN (
SELECT val
FROM CustomSPLIT(@strOUs, ',') )
)
AND ( ou.OrganizationUnitDefinitionID = oud.OrganizationUnitDefinitionID )
UNION ALL
( SELECT ou.OrganizationUnitID
FROM OrganizationUnit AS ou
INNER JOIN RecursiveTable AS rt ON ou.ParentOrganizationUnitID = rt.OrganizationUnitID ,
OrganizationUnitDefinition AS oud
WHERE ou.OrganizationUnitDefinitionID = oud.OrganizationUnitDefinitionID
)
)
SELECT DISTINCT
[OrganizationUnitID]
--INTO #tempEmployeeByOUIDs
FROM RecursiveTable
did i missed something??
Try:
The
WITHthat introduces a CTE has to be the first part of the statement it is a part of, it has to come before theINSERT.