Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Newid
Newid
Lo más habitual cuando hacemos una consulta en una base de datos es que queramos obtener todos
los registros que cumplan una determinada condición. Por ejemplo, en la base de datos de ejemplo
de Northwind, para obtener todos productos que no están discontinuados (o sea, que todavía se
venden) y de los que tenemos algo en stock, ordenados de mayor a menor stock disponible y con el
Suppliers.CompanyName, Suppliers.ContactName,
Products.UnitsInStock
Suppliers.SupplierID
Si queremos obtener solamente los 10 primeros productos con más stock en lugar de todos los
productos, es muy fácil: basta con usar la palabra clave TOP delante de la consulta indicando el
número de registros que necesitamos. La consulta sería así (destacado en rojo la parte modificada):
Suppliers.CompanyName, Suppliers.ContactName,
Products.UnitsInStock
Suppliers.SupplierID
que en lugar de ordenarlos por un criterio y que nos devuelva los 10 primeros, nos devuelva 10
Esto puede ser útil para muchas cosas: para llamar a 20 clientes aleatoriamente en una base de datos
de clientes, para que se escojan 10 preguntas para un examen entre un conjunto de cientos de ellas,
etc...
Para conseguir esto en SQL Server tenemos varias opciones, pero la más común y sencilla es
BONUS: Consigue GRATIS este ebook sobre SQL >> Héroe en SQL: manual de
iniciación
generar un nuevo identificador único de tipo GUID (uniqueidentifier), generalmente para insertarlo
537CB0CE-95B6-4435-BD3A-468456878D96
es decir, unas cadenas con letras, números y guiones muy largas que son aleatorias y que se asegura
que son únicos, de ahí su nombre: GUID, que significa Globally Unique Identifier, o en español
generado en el equipo local junto con la MAC de la primera tarjeta de red del mismo (que también
Suppliers.CompanyName, Suppliers.ContactName,
Products.UnitsInStock
Suppliers.SupplierID
Esto lo que provocará es que, para cada registro, se generará un nuevo identificador único del estilo
Siendo este valor aleatorio completamente, y al haberle colocado un TOP X a la consulta (siendo X
primeros registros aleatorios de la tabla o tablas que estamos consultando (pulsa para aumentar):
Puedes probarlo: cada vez que ejecutes la consulta obtendrás un conjunto nuevo de registros,