SQL Server

Cambios en el CTP6 de SQL Server 2008

En el CTP6 de SQL Server 2008 se dieron cambios en el estatuto MERGE y con el tipo de dato HIERARCHYID.

Cambios en el MERGE

En este CTP se soportan las siguientes claúsulas:

WHEN [TARGET] NOT MATCHED THEN

WHEN SOURCE NOT MATCHED THEN

Sin embargo en el siguiente CTP refresh se cambiará la sintaxis para que no sea tan confusa, y quedará de la siguiente forma:

WHEN NOT MATCHED [BY TARGET] THEN

WHEN NOT MATCHED BY SOURCE THEN

 

Cambios en HIERARCHYID

En el CTP 6, el método IsDescndent es aplicado an ancestro y acepta un hijo como entrada, por ejemplo:

<parent>.IsDescendant(<child>)

Esta sintaxis es un poco confusa y después del CTP6 se cambiará para la sintaxis sea la siguiente:

<child>.IsDescendant(<parent>)

Un ejemplo es el siguiente, utilizando sintáxis de CTP6, devuelve un empleado y todos sus subordinados en todos los niveles:

SELECT C.empid, C.empnombre, C.lvl

FROM dbo.Empleados AS P

  JOIN dbo.Empleados AS C

    ON P.empid = 3

    AND P.hid.IsDescendant(C.hid) = 1;

 

Después de CTP6 quedaría de la siguiente forma:

SELECT C.empid, C.empnombre, C.lvl

FROM dbo.Empleados AS P

  JOIN dbo.Empleados AS C

    ON P.empid = 3

    AND C.hid.IsDescendantOf(P.hid) = 1;

 

También el método Reparent será renombrado a GetReparentedValue.

Posted: Apr 25 2008, 04:54 AM by ecastro | with no comments
Filed under:

Comments

No Comments