Transac

Páginas: 10 (2273 palabras) Publicado: 16 de agosto de 2011
Transact SQL 2005

[pic]
Este documento describe las nuevas caracteristicas de T-SQL para SQL Server 2005.
[pic]

Introduccion

Microsoft Sql Server 2005 (YUKON) es un producto con muchas novedades comparándolo con su antecesor SQL 2000. Sin duda que uno de sus mayores cambios ha sido la inclusión del CLR dentro del motor de base de datos.

En este artículo nos concentraremos en algunasde las tantas novedades que nos trae Microsoft SQL 2005 en lo que respecta a Transact-SQL, las cuales serán de mucha utilidad para los desarrolladores de aplicaciones como así también para los DBA.

Transact SQL (TSQL) es el lenguaje que usamos para escribir : Store Procedures – Triggers – Querys – Etc.
Sin dudas que TSQL no dispone de las mismas habilidades y potencia que puede tener unlenguaje como C# o VB.NET. En Sql2005 veremos un cambio significativo en TSQL el cual nos ayudara en nuestro trabajo diario.

Antes de empezar les recomiendo que descarguen la versión Beta de Sql-Server June 2005 del siguiente link:
http://www.microsoft.com/downloads/details.aspx?FamilyId=B414B00F-E2CC-4CAB-A147-EACA26740F19&displaylang=en
Recomiendo que dicha instalación se realice en un ambientede testing como podría ser una maquina Virtual.

Numerando Registros (RowId):

En muchas ocasiones es necesario poder obtener una columna con el número de registro o también poder generar un ranking. Hasta SQL2000 este tipo de operaciones no eran tan simples de realizar y no disponíamos de instrucciones directas. En TSQL 2005 disponemos de una serie de instrucciones las cuales nos hacen eltrabajo mucho mas simple y eficiente. Veamos de qué se trata ello.

Row_Number: Esta nueva función de TSQL nos permitirá numerar los resultados de una query.

El siguiente ejemplo muestra el uso de esta función:

Use AdventureWorks
Go

Select row_number() over(order by name) as rowid,
name,productNumber,productId from Production.product where productnumber like 'be%'
order by name

Elresultado obtenido de esta query es el siguiente:

rowid name productNumber productId
-------- -------------------------------------------------- ------------------------- ---------
1 BB Ball Bearing BE-2349 3
2 Headset Ball BearingsBE-2908 4

A las funciones de numeración como Row_number() le podemos agregar la cláusula Partition la cual nos permitirá numerar pero haciendo un corte y reiniciando el numerador a partir de ese corte. En el siguiente ejemplo hacemos uso de ello:

Use AdventureWorks
Go

Select row_number() over(partition by color order by name) as rowid,name,productNumber,productId,color from Production.product
where color in ('Blue','Silver')
order by color,name

Este ejemplo nos retornara un listado de productos donde el color sea Blue o Silver y los numerara con rowid pero al cambiar el color el numerador volverá a comenzar.

rowid name productNumber productId color
---------------------------------------------------- ------------------------- ----------- ---------------

25 Touring-3000 Blue, 58 BK-T18U-58 959 Blue
26 Touring-3000 Blue, 62 BK-T18U-62 960 Blue
1 Chain CH-0234 952 Silver
2Chainring Bolts CB-2903 320 Silver
3 Chainring Nut CN-6137 321 Silver
4 Freewheel FH-2981 332 Silver


Conclusiones: La instrucción Row_number() nos da la habilidad de poder numerar los...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Transac sql
  • Variables y estructuras de control en transac sql
  • Transac sql
  • P. transac
  • Algoritmo De Agrupamiento Transac

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS