1. EQUIPO 8
INTEGRANTES:
LAYNA LÓPEZ JESÚS ANDRÉS
ESPINOSA GÓMEZ AMIR JOSELEPH
FLORES CAMPOS AMIR
2. Data Manipulation Language
(DML) Statements
• Lenguaje de manipulación de datos (DML) es un vocabulario que se
utiliza para recuperar y trabajar con datos en SQL Server 2012.
Utilice estas instrucciones para agregar, modificar, consultar o
eliminar datos de una base de datos SQL Server.
• En la tabla siguiente se muestran las instrucciones DML que usa SQL
Server.
BULK INSERT (Transact-SQL) SELECT (Transact-SQL)
DELETE (Transact-SQL) UPDATE (Transact-SQL)
INSERT (Transact-SQL) UPDATETEXT (Transact-SQL)
MERGE (Transact-SQL) WRITETEXT (Transact-SQL)
READTEXT (Transact-SQL)
3. En la tabla siguiente se enumeran las cláusulas que se utilizan en varias sentencias
DML o cláusulas.
Clause Can be used in these statements
FROM (Transact-SQL) DELETE, SELECT, UPDATE
Hints (Transact-SQL) DELETE, INSERT, SELECT, UPDATE
OPTION Clause (Transact-SQL) DELETE, SELECT, UPDATE
OUTPUT Clause (Transact-SQL) DELETE, INSERT, MERGE, UPDATE
Search Condition (Transact-SQL) DELETE, MERGE, SELECT, UPDATE
Table Value Constructor (Transact-SQL) FROM, INSERT, MERGE
TOP (Transact-SQL) DELETE, INSERT, MERGE, SELECT,
UPDATE
WHERE (Transact-SQL) DELETE, SELECT, UPDATE
WITH common_table_expression DELETE, INSERT, MERGE, SELECT,
(Transact- SQL) UPDATE
4. BULK INSERT
• Importa un archivo de datos en una tabla o vista de base de datos en
un formato especificado por el usuario.
Compatibilidad:
BULK INSERT aplica la validación de datos estricta y comprobaciones de
datos de lectura de datos desde un archivo que podría causar scripts
existentes a fallar cuando se ejecutan en datos no válidos. Por ejemplo,
BULK INSERT comprueba que:
• Las representaciones nativas de flotador o tipos de datos reales son
válidos.
• Los datos Unicode tienen una longitud de un byte.
5. Data Types
• String-to-Decimal de datos Conversiones de tipos
Las conversiones de cadena a decimal de tipo de datos
utilizados en BULK INSERT siguen las mismas reglas que la
función CONVERT de Transact-SQL, que rechaza cadenas que
representan valores numéricos que utilizan la notación
científica. Por lo tanto, BULK INSERT trata a cadenas como
valores no válidos y los informes de errores de conversión.
Para evitar este comportamiento, utilice un archivo de
formato para importación masiva de datos de notación
científica flotador en una columna decimal. En el archivo de
formato, describir explícitamente la columna como datos
reales o float. Para obtener más información acerca de estos
tipos de datos, vea float y real (Transact-SQL).
6. Tipos de datos para la Exportación o importación
masiva de SQL documentos XML.
Para la exportación a granel o datos SQLXML, utilice uno de
los siguientes tipos de datos en el archivo de formato:
Data type Effect
SQLCHAR or SQLVARYCHAR The data is sent in the client code page or
in the code page implied by the collation).
The effect is the same as specifying the
DATAFILETYPE ='char' without specifying a
format file.
SQLNCHAR or SQLNVARCHAR The data is sent as Unicode. The effect is
the same as specifying the DATAFILETYPE =
'widechar' without specifying a format file.
SQLBINARY or SQLVARYBIN The data is sent without any conversion.
7. Restricciones
Cuando se utiliza un archivo de formato con BULK INSERT, puede
especificar hasta 1024 sólo los campos. Esto es igual que el número
máximo de columnas permitidas en una tabla. Si utiliza BULK INSERT
con un archivo de datos que contiene más de 1024 campos, BULK
INSERT genera el error 4822. La utilidad bcp no tiene esta limitación,
por lo que para los archivos de datos que contienen más de 1024
campos, utilice el bcp comando.
8. DELETE
Elimina una o más filas de una tabla o vista de SQL Server 2012
Mejores Prácticas
Para eliminar todas las filas de una tabla, utilice TRUNCATE TABLE. TRUNCATE TABLE es
más rápida que DELETE y utiliza menos recursos del sistema y del registro de
transacciones.
9. CONTROL DE ERRORES
Se puede implementar el control de errores para la instrucción DELETE
especificando la declaración en un
Construcción TRY ... CATCH.
La instrucción DELETE puede fallar si se viola un gatillo o intenta quitar una fila
indicada por los datos de otra tabla con una restricción FOREIGN KEY. Si el
DELETE elimina varias filas, y cualquiera de las filas eliminadas viola un
desencadenador o restricción, la instrucción se cancela, se devuelve un error y
no hay filas se eliminan.
Cuando una instrucción DELETE encuentra un error aritmético
(desbordamiento, división por cero, o un error de dominio) al evaluar una
expresión, el motor de base de datos se encarga de estos errores como si SET
ARITHABORT es ON. El resto del lote se cancela, y un mensaje de error se
devuelve.
10. LIMITACIONES Y
RESTRICCIONES
Cuando se utiliza con TOP DELETE, las filas se hace referencia no están
dispuestos en cualquier orden y ORDER BY cláusula no se puede especificar
directamente en esta norma. Si usted necesita utilizar TOP para eliminar filas
en un orden cronológico significativo, debe utilizarla junto con una cláusula
ORDER BY en una instrucción de subselección. Vea la sección de ejemplos
que sigue en este tema.
TOP no se puede utilizar en una instrucción DELETE en contra de vistas con
particiones.
11. LA CAPTURA DE LOS RESULTADOS
DE LA INSTRUCCIÓN DELETE
A. Utilizar DELETE con la cláusula OUTPUT
El siguiente ejemplo muestra cómo guardar los resultados de una instrucción
DELETE para una variable de tabla.
USE AdventureWorks2012; GO
DELETE Sales.ShoppingCartItem
OUTPUT DELETED.*
25
WHERE ShoppingCartID = 20621;
--Verify the rows in the table matching the WHERE clause have been
deleted.
SELECT COUNT(*) AS [Rows in Table] FROM Sales.ShoppingCartItem
WHERE ShoppingCartID =
20621; GO
12. B. Usar OUTPUT con <from_table_name> en una instrucción DELETE
El ejemplo siguiente se eliminan las filas de la tabla ProductProductPhoto sobre la
base de criterios de búsqueda definidos en la cláusula FROM de la instrucción
DELETE. La cláusula OUTPUT devuelve columnas de la tabla que se elimina,
DELETED.ProductID, DELETED.ProductPhotoID, y las columnas de la tabla Product.
Esto se utiliza en la cláusula FROM para especificar las filas que desea eliminar.
USE AdventureWorks2012; GO
DECLARE @MyTableVar table ( ProductID int NOT NULL, ProductName
nvarchar(50)NOT NULL, ProductModelID int NOT NULL, PhotoID int
NOT NULL);
DELETE Production.ProductProductPhoto
OUTPUT DELETED.ProductID, p.Name, p.ProductModelID,
DELETED.ProductPhotoID
INTO @MyTableVar
FROM Production.ProductProductPhoto AS ph
JOIN Production.Product as p
ON ph.ProductID = p.ProductID
WHERE p.ProductModelID BETWEEN 120 and 130;
--Display the results of the table variable.
SELECT ProductID, ProductName, ProductModelID, PhotoID FROM
@MyTableVar
ORDER BY ProductModelID; GO
13. FROM
Especifica las tablas, vistas, tablas derivadas y tablas utilizadas en DELETE, SELECT y UPDATE de
SQL Server 2012. En la instrucción SELECT, la cláusula FROM es obligatoria excepto cuando la lista
de selección sólo contiene constantes, variables y expresiones aritméticas (sin nombres de
columna).
Observaciones
La cláusula FROM admite la sintaxis SQL-92-SQL para las tablas combinadas y las tablas derivadas.
SQL-92 proporciona la sintaxis INNER, LEFT OUTER, DERECHA EXTERIOR EXTERIOR COMPLETO, Y
Cruz operadores de combinación.
UNION y JOIN en la cláusula FROM se apoyan en opiniones y en tablas derivadas ni subconsultas.
Una autocombinación es una tabla que se une a sí mismo. Insertar o actualizar las operaciones que
se basan en una autocombinación seguir el orden en la cláusula FROM.
Dado que SQL Server considera la distribución y las estadísticas de cardinalidad de los servidores
vinculados que proporcionan estadísticas de distribución de columnas, la sugerencia de
combinación REMOTE no está obligado a forzar la evaluación de una unión remota. El procesador
de consultas de SQL Server considera estadísticas remotas y determina si una estrategia remoto
combinación es adecuada. DISTANCIA sugerencia de combinación es útil para los proveedores que
no ofrecen las estadísticas de distribución de columnas.
14. PERMISOS
Requiere los permisos para el DELETE, SELECT o UPDATE.
A. Utilizando un simple cláusula FROM 5 Southeast
6 Canadá
El ejemplo siguiente recupera el TerritoryID y 7 Francia
columnas Nombre de la tabla SalesTerritory 8 Alemania
en la base de datos de ejemplo 9 Australia
AdventureWorks2012. 10 Reino Unido
(10 fila (s) affected)
USO AdventureWorks2012; GO
SELECT TerritoryID, Nombre DE ORDEN POR
Sales.SalesTerritory TerritoryID;
Éste es el conjunto de resultados.
Nombre TerritoryID
-----------------------------------------
1 Northwest
2 noreste
3 Central
4 sudoeste
15. Hints
Las sugerencias son las opciones o estrategias específicas para la aplicación por el
procesador de consultas de SQL Server en SELECT, INSERT, UPDATE o DELETE. Las
sugerencias de anular cualquier plan de ejecución el optimizador de consultas puede
seleccionar para una consulta.
Join Hints
Sugerencias de combinación especifica que el optimizador de consultas de
ejecución de una estrategia de combinación entre dos tablas.
Debido a que el optimizador de consultas de SQL Server suele seleccionar el mejor
plan de ejecución para una consulta, se recomienda que las sugerencias,
incluyendo <join_hint>, debe utilizarse sólo como último recurso por
experimentados desarrolladores y administradores de bases de datos.
16. Query Hints
Las sugerencias de consulta especifica que las sugerencias indicadas, debe
utilizarse la consulta. Afectan a todos los operadores en el comunicado. Si la unión
está involucrado en la consulta principal, sólo la última consulta que implique una
operación UNION puede contener la cláusula OPTION. Las sugerencias de consulta
se especifican como parte de la cláusula OPTION. Si una o varias sugerencias de
consulta que el optimizador de consultas no genere un plan válido de error,
8622 se eleva.
17. Remarks
Las sugerencias de consulta no se puede especificar en una
sentencia INSERT excepto cuando hay una cláusula SELECT se
utiliza dentro de la instrucción.
Las sugerencias de consulta sólo se puede especificar en la
consulta de nivel superior, no en subconsultas. Cuando una
sugerencia de tabla se especifica como una sugerencia de
consulta, la sugerencia se puede especificar en la consulta de
nivel superior o en una subconsulta, sin embargo, el valor
especificado para exposed_object_name en la cláusula TABLE
HINT debe coincidir exactamente con el nombre expuesto en la
consulta o subconsulta .
18. Table Hints
Las sugerencias de tabla anular el comportamiento predeterminado del
optimizador de consultas para la duración del lenguaje de manipulación de datos
(DML) especificando un método de bloqueo, uno o varios índices, una consulta
de procesamiento de operación, como una exploración de tabla o Index Seek, u
otras opciones. Las sugerencias de tabla se especifican en la cláusula FROM de la
instrucción DML y afectan sólo a la tabla o vista hace referencia en dicha cláusula.
precaución
Debido a que el optimizador de consultas de SQL Server suele seleccionar el
mejor plan de ejecución para una consulta, se recomienda que utilicen las
sugerencias sólo como último recurso, por experimentados desarrolladores y
administradores de bases de datos.
19. Observaciones
Las sugerencias de tabla se ignora si la tabla no se accede por el plan de
consulta. Esto puede ser causado por el optimizador de elección de no
acceder a la tabla en absoluto, o porque una vista indizada se accede en su
lugar. En este último caso, el acceso a una vista indizada puede evitarse
mediante el OPTION (EXPAND VIEWS) sugerencia de consulta.
Todas las sugerencias de bloqueo se propagan a todas las tablas y vistas que se
accede por el plan de consulta, incluyendo tablas y vistas referenciadas en una
vista. Además, SQL Server realiza las comprobaciones correspondientes de
bloqueo de consistencia.
Bloqueo de pistas ROWLOCK, UPDLOCK Y XLOCK que adquieren nivel de fila
puede colocar cerraduras en las claves de índice en lugar de las filas de datos
reales. Por ejemplo, si una tabla tiene un índice agrupado, y una instrucción
SELECT que utiliza una sugerencia de bloqueo es manejado por un índice de
cobertura, un bloqueo se adquiere la clave de índice en el índice de cobertura
en lugar de la fila de datos en la tabla base.
20. Usando NOEXPAND
NOEXPAND sólo se aplica a las vistas indizadas. Una vista indizada es una
vista con un índice agrupado único creado en él. Si una consulta contiene
referencias a columnas que están presentes tanto en una vista indizada y
tablas base, y el optimizador de consultas determina que el uso de la vista
indizada proporciona el mejor método para ejecutar la consulta, el
optimizador de consultas utiliza el índice de la vista. Esta función se
denomina coincidencia de vista indizada. Uso automático de vista
indizada por el optimizador de consultas sólo se admite en las ediciones
específicas de SQL Server. Para obtener una lista de características que
son compatibles con las ediciones de SQL Server, vea Características
compatibles con las ediciones de SQL Server 2012
(http://go.microsoft.com/fwlink/?linkid=232473).
Sin embargo, para que el optimizador considere las vistas indizadas para
la coincidencia, o utilizar una vista indizada que se hace referencia con la
sugerencia NOEXPAND, las siguientes opciones SET se debe establecer en
ON.
21. 1 está implícitamente ARITHABORT en ON cuando ANSI_WARNINGS está
establecido en ON. Por lo tanto, usted no tiene que ajustar manualmente esta
configuración.
Además, la opción NUMERIC_ROUNDABORT se debe establecer en OFF.
Para forzar al optimizador a usar un índice para una vista indizada, especifique la
opción NOEXPAND. Esta receta se puede utilizar sólo si la vista es también el
nombre de la consulta. SQL Server no proporciona un indicio
para forzar un punto de vista particular indexado para ser utilizado en una
consulta que no nombra a la vista directamente en la
Cláusula FROM, sin embargo, el optimizador de consultas tiene en cuenta el uso
de vistas indizadas, aunque no se hace referencia directa en la consulta.
ANSI_NULLS ANSI_WARNINGS CONCAT_NULL_YIELDS_NULL
ANSI_PADDING ARITHABORT1 QUOTED_IDENTIFIERS
22. Usando una sugerencia de tabla como una
sugerencia de consulta
Las sugerencias de tabla también se puede especificar como una sugerencia de
consulta mediante el OPTION (TABLE HINT) cláusula. Le recomendamos que utilice
una sugerencia de tabla como una sugerencia de consulta en el contexto de una
guía de plan. Para consultas ad-hoc, especifique estas sugerencias sólo como
sugerencias de tabla. Para obtener más información, vea Sugerencias de consulta
(Transact-SQL).
Permisos
El KEEPIDENTITY, IGNORE_CONSTRAINTS y sugerencias IGNORE_TRIGGERS
requieren ALTER
permisos en la tabla.
23. INSERT
Tipos de datos
Al insertar filas, considere el comportamiento tipo de datos siguientes:
• Si un valor se carga en columnas con un char, varchar o tipo de datos varbinary, el
relleno o truncamiento de los espacios en blanco finales (espacios para char y
varchar, ceros para varbinary) está determinada por la configuración de SET
ANSI_PADDING definida para la columna cuando se creó la tabla. Para obtener más
información, vea SET ANSI_PADDING (Transact-SQL).
La tabla siguiente muestra el funcionamiento predeterminado de SET
ANSI_PADDING OFF.
24. Data type Default operation
Pad valor con espacios para el
char ancho definido de la columna
Eliminar espacios finales hasta el
varchar último carácter no-espacio o un
carácter de un solo espacio para
cadenas compuestas solamente de
espacios.
varbinary
Eliminar los ceros finales.
25. Si una cadena vacía ("") se carga en una columna con un tipo varchar o texto de
datos, la operación predeterminada es cargar una cadena de longitud cero.
• La inserción de un valor nulo en una columna de texto o la imagen no se crea
un puntero de texto válido, ni asignar previamente una página de texto de 8 KB.
• Las columnas creadas con el tipo de datos uniqueidentifier tienda con formato
especial de 16 bytes valores binarios. A diferencia de las columnas de
identidad, el motor de base de datos no genera automáticamente valores de
columnas con el tipo de datos uniqueidentifier. Durante una operación de
inserción, las variables con un tipo de datos uniqueidentifier y constantes de
cadena con el formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (36
caracteres, incluyendo guiones, donde x es un dígito hexadecimal en el rango de
0-9 o af) puede ser para las columnas uniqueidentifier. Por ejemplo, 6F9619FF-
8B86-D011-B42D-00C04FC964FF es un valor válido para una variable o columna
uniqueidentifier. Utilice la función NEWID () para obtener un identificador único
global (GUID).
26. Control de errores
Puede implementar el manejo de errores para la instrucción INSERT especificando la
declaración en un
Construcción TRY ... CATCH.
Si una sentencia INSERT infringe una restricción o regla, o si tiene un valor incompatible con el
tipo de datos de la columna, el comando falla y aparece un mensaje de error se devuelve.
Si está cargando INSERT de varias filas con SELECT o EXECUTE, toda violación de una regla o
restricción que se produce a partir de los valores que se cargan provoca que la instrucción se
detuvo y no se carguen filas.
Cuando una sentencia INSERT encuentra un error aritmético (desbordamiento, división por
cero, o un error de dominio) al evaluar una expresión, el motor de base de datos se encarga
de estos errores como si
SET ARITHABORT se establece en ON. La carga se detiene y aparece un mensaje de error se
devuelve. durante
evaluar una expresión con SET ARITHABORT y SET ANSI_WARNINGS es OFF, si una instrucción
INSERT, DELETE o UPDATE encuentra un error aritmético, desbordamiento, división por cero,
o un error de dominio, SQL Server inserta o actualiza un valor NULL. Si la columna de destino
no es anulable, la acción de inserción o actualización falla y el usuario recibe un error.
27. MERGE
Realiza inserción, actualización o eliminación en una tabla de destino en
función de los resultados de una combinación con una tabla de origen. Por
ejemplo, puede sincronizar dos tablas mediante la inserción, actualización o
eliminación de las filas de una tabla basada en las diferencias que se
encuentran en la otra tabla.
Permisos
Requiere el permiso SELECT en la tabla de origen y INSERT, UPDATE o DELETE
sobre la tabla de destino. Para obtener información adicional, consulte la
sección Permisos en el SELECT, INSERT, UPDATE y DELETE temas.
28. Utilice la sugerencia de tabla READPAST en
UPDATE y DELETE si el escenario permite que
varias aplicaciones realicen una lectura
destructiva de una tabla. Esta evita problemas
de bloqueo que pueden surgir si otra aplicación
ya está leyendo la primera clasificación registro
de la tabla.
29. Ejemplos
A. Usar OUTPUT INTO con una instrucción INSERT simple
El ejemplo siguiente inserta una fila en la tabla
ScrapReason y utiliza la cláusula OUTPUT para devolver los
resultados de la instrucción para la variable
MyTableVartable @. Debido a que la columna
ScrapReasonID se define con una propiedad IDENTITY, un
valor no está especificado en la instrucción INSERT para
esa columna. Sin embargo, tenga en cuenta que el valor
generado por el motor de base de datos para esa columna
se devuelve en la cláusula OUTPUT en la columna ID
inserted.ScrapReason.
30. USE AdventureWorks2012;
GO
DECLARE @MyTableVar table( NewScrapReasonID smallint,
Name varchar(50),
ModifiedDate datetime);
INSERT Production.ScrapReason
OUTPUT
INSERTED.ScrapReasonID, INSERTED.Name, INSERTED.Modified
Date
INTO @MyTableVar
VALUES (N'Operator error', GETDATE());
--Display the result set of the table variable.
SELECT NewScrapReasonID, Name, ModifiedDate FROM
@MyTableVar;
--Display the result set of the table.
SELECT ScrapReasonID, Name, ModifiedDate
FROM Production.ScrapReason;
GO.
31. OUTPUT Clause
• Devuelve información de, o expresiones basadas en, cada fila
afectada por una instrucción INSERT, UPDATE, DELETE o
MERGE. Estos resultados pueden ser devueltos a la aplicación
de procesamiento para su uso en cosas tales como mensajes
de confirmación, archivos, y otros requisitos de aplicación
tales. Los resultados también se puede insertar en una tabla o
una variable de tabla. Además, puede capturar los resultados
de una cláusula OUTPUT en una instrucción anidada INSERT,
UPDATE, DELETE o MERGE, e insertar los resultados en una
tabla o vista de destino.
32. • Tipos de datos
La cláusula OUTPUT admite los tipos de datos de objetos
grandes: nvarchar (max), varchar (max), varbinary (max), text,
ntext, image, xml y. Cuando se utiliza el. WRITE en la
instrucción UPDATE para modificar un nvarchar (max), varchar
(max) o varbinary (max), el total antes y después de las
imágenes de los valores se devuelven si se hace referencia. El
TEXTPTR () no puede aparecer como parte de una expresión
en un texto, ntext o columna de imagen en la salida
33. SELECT
• Recupera filas de la base de datos y permite la selección de
una o varias filas o columnas de una o varias tablas en SQL
Server 2012. La sintaxis completa de la instrucción SELECT es
compleja, pero las cláusulas principales se pueden resumir en:
[CON <common_table_expression>] SELECT select_list
[INTOnew_table]
[FROMtable_source] [WHEREsearch_condition] [GROUP BY
group_by_expression]
[HAVINGsearch_condition]
[ORDER BY order_expression [ASC | DESC]]
La UNION, EXCEPT e INTERSECT se pueden utilizar entre
consultas para combinar o comparar sus resultados en un
conjunto de resultados.
34. Permisos
Selección de datos requiere el permiso SELECT en la tabla
o vista, lo que podría ser heredado de un ámbito superior
como el permiso SELECT en el esquema o permiso
CONTROL en la tabla. ¿O es necesario pertenecer a la
db_datareader o roles db_owner fija de base de datos, o el
rol fijo de servidor sysadmin. Creación de una nueva tabla
con SELECTINTO también requiere el permiso CreateTable,
y el permiso ALTERSCHEMA en el esquema al que
pertenece la nueva tabla.
35. Group By
• Agrupa un conjunto seleccionado de filas en un conjunto de filas de
resumen de los valores de una o más columnas o expresiones en
SQL Server 2012. Se devuelve una fila para cada grupo. Las
funciones de agregado en la cláusula SELECT lista SELECT
proporcionar información acerca de cada grupo en lugar de filas
individuales.
La cláusula GROUP BY tiene una sintaxis compatible con ISO y una
sintaxis no ISO-compliant. Sólo un estilo de sintaxis puede utilizarse
en una sola instrucción SELECT. Utilice la sintaxis compatible con ISO
para toda nueva obra. La sintaxis no compatible con ISO se
proporciona por compatibilidad con versiones anteriores.
En este tema, una cláusula GROUP BY se puede describir como
general o simple:
36. Una cláusula GROUP BY general incluye GROUPING SETS,
CUBE, ROLLUP, CUBE CON o
WITH ROLLUP.
Un simple GROUP BY no incluye GROUPING SETS, CUBE,
ROLLUP, CUBE CON O CON ROLLUP. GROUP BY (), total
general, se considera un simple GROUP BY.
37. HAVING
Especifica una condición de búsqueda para un grupo o un
agregado. HABIENDO sólo se puede utilizar con la instrucción
SELECT. HABIENDO se suele utilizar en una cláusula GROUP BY.
Cuando GROUP BY no se utiliza, HABIENDO se comporta como
una cláusula WHERE.
38. INTO Clause
• SELECT ... INTO crea una nueva tabla en el grupo de archivos
predeterminado e inserta las filas resultantes de la consulta en
el mismo. Para ver la sintaxis completa SELECT, vea SELECT
(Transact-SQL).
Permisos
Requiere el permiso CREATE TABLE en la base de datos de destino.
39. ORDER BY Clause
Ordena los datos devueltos por una consulta en SQL
Server 2012. Utilice esta cláusula para:
• Ordenar el conjunto de resultados de una consulta de la
lista de columnas especificado y, opcionalmente, limitar
las filas devueltas a un rango especificado. El orden en
que se devuelven filas en un conjunto de resultados no
están garantizados a menos que una cláusula ORDER BY se
especifica.
• Determinar el orden en el que los valores de rango de
función se aplica al conjunto de resultados.
40. Interoperabilidad
Cuando se utiliza con un SELECT ... INTO para insertar filas
de otra fuente, el ORDER BY
cláusula no garantiza que las filas se inserten en el orden
especificado.
Usando OFFSET y FETCH en una vista no cambia la
propiedad Updateability de la vista.
41. Limitaciones y restricciones
No hay límite al número de columnas de la cláusula ORDER BY, sin
embargo, el tamaño total de las columnas especificadas en una cláusula
ORDER BY no puede superar los 8.060 bytes.
Las columnas de tipo ntext, text, image, geografía, geometría y xml no se
pueden utilizar en un
Cláusula ORDER BY.
Un entero o una constante no se puede especificar cuando
order_by_expression aparece en una función de categoría. Para obtener
más información, vea OVER (cláusula de Transact-SQL).
Si el nombre de la tabla tiene un alias en la cláusula FROM, sólo el nombre
de alias se puede utilizar para calificar a sus columnas de la cláusula
ORDER BY.
42. Los nombres de columnas y alias especificados en la cláusula ORDER BY se
debe definir en la lista de selección si la instrucción SELECT contiene una de las
siguientes cláusulas u operadores:
• UNIÓN operador
• EXCEPT
• INTERSECT operador
• SELECT DISTINCT
Además, cuando la declaración incluye un operador UNION, EXCEPT o
INTERSECT operador, los nombres de columna o alias de columna se debe
especificar en la lista de selección de la primera (izquierda) de la consulta.
En una consulta que use UNION, EXCEPT o INTERSECT, ORDER BY se permite
sólo al final de la declaración. Esta restricción se aplica sólo a cuando se
especifica UNION, EXCEPT e INTERSECT en una consulta de nivel superior y no
en una subconsulta. Véase la sección de ejemplos que sigue.
La cláusula ORDER BY no es válida en vistas, funciones insertadas, tablas
derivadas ni subconsultas, a menos que la parte superior o cláusulas OFFSET y
FETCH también se especifican. Cuando ORDER BY es
utilizada en estos objetos, la cláusula sólo se utiliza para determinar las filas
devueltas por la cláusula TOP
43. O OFFSET y FETCH cláusulas. La cláusula ORDER BY no
garantiza resultados ordenados cuando estas
construcciones se consultan, a menos ORDER BY también se
especifica en la propia consulta.
OFFSET y FETCH no son compatibles con las vistas indizadas
o en una vista que se define mediante la VER cláusula
OPTION.
44. OVER Clause
Determina la partición y el ordenamiento de un conjunto
de filas antes de la función de ventana asociado se aplica.
Es decir, la cláusula OVER define una ventana o
especificado por el usuario conjunto de filas dentro de un
conjunto de resultados de consulta. Una función de
ventana se calcula un valor para cada fila de la ventana.
Puede utilizar la cláusula OVER con funciones para calcular
valores agregados tales como medias móviles, agregados
acumulativos, totales acumulados, o un grupo de los
mejores resultados por N.
45. Limitaciones y restricciones
La cláusula OVER no se puede utilizar con la función de agregado
CHECKSUM.
RANGO no se puede utilizar con specification> <unsigned valor
anterior o siguiente <unsigned valor specification>.
Dependiendo de la función de categoría, agregar, o analítico
utilizar con la cláusula OVER, <Order POR clause> y / o los
<ROWS y clause> rango no puede ser apoyada.
46. Table Value Constructor
Especifica un conjunto de expresiones de valor de
fila para ser construidos en una tabla. El constructor
de tabla de Transact-SQL valor permite que varias
filas de datos que se especifica en una instrucción
DML único. El constructor con valores de tabla puede
ser especificado en la cláusula VALUES de la
instrucción INSERT, en la cláusula <tabla origen> USO
de la instrucción MERGE, y en la definición de una
tabla derivada en la cláusula FROM.
47. TOP
• Limita las filas devueltas en un resultado de consulta
establecido en un número especificado de filas o porcentaje
de filas en SQL Server 2012. Cuando TOP se utiliza en
conjunción con la cláusula ORDER BY, el conjunto de
resultados se limita a la primera número N de filas ordenadas,
de lo contrario, se devuelve el primer número N de filas
aleatorias. Utilice esta cláusula para especificar el número de
filas devueltas por una instrucción SELECT o afectadas por una
instrucción INSERT, UPDATE, MERGE o DELETE.
48. con la Asistencia
Para la compatibilidad con versiones anteriores, los
paréntesis son opcionales en instrucciones SELECT. Le
recomendamos que utilice siempre paréntesis para TOP
en sentencias SELECT para mantener la coherencia con su
uso requerido en las instrucciones
INSERT, UPDATE, MERGE y DELETE en la que los paréntesis
son necesarios.
49. Limitaciones y restricciones
Cuando se utiliza con TOP INSERT, UPDATE, MERGE o DELETE, las filas
se hace referencia no están dispuestos en cualquier orden y ORDER BY
cláusula no se puede especificar directamente en estas declaraciones.
Si usted necesita utilizar TOP para insertar, eliminar o modificar las
filas en un orden cronológico significativo, debe utilizarla junto con una
cláusula ORDER BY que se especifica en una instrucción de
subselección. Vea la sección de ejemplos que sigue en este tema.
TOP no se puede utilizar en una instrucción UPDATE y DELETE en vistas
con particiones.
TOP no se puede combinar con OFFSET y FETCH en la misma expresión
de consulta (en el ámbito de la consulta misma). Para obtener más
información, vea ORDER BY (cláusula de Transact-SQL).
50. UPDATE
Los cambios de datos existentes en una tabla o vista de SQL
Server 2012. Para ejemplos, vea Ejemplos.
51. Con la Asistencia
Soporte para el uso de los NOLOCK
READUNCOMMITTED y en la cláusula FROM que se
aplican a la tabla de destino de una instrucción UPDATE
o DELETE se quitará en una versión futura de SQL
Server. Evite el uso de estos consejos en este contexto
en nuevos trabajos de desarrollo y piense en modificar
las aplicaciones que actualmente la utilizan.
52. Tipos de datos
Todas las columnas char y nchar se haga con relleno a la longitud definida.
Si ANSI_PADDING se establece en OFF, todos los espacios finales se eliminan
de los datos insertados en las columnas varchar y nvarchar, excepto en
cadenas que contienen sólo espacios. Estas cadenas se truncan a una cadena
vacía. Si ANSI_PADDING se establece en ON, los espacios finales se insertan.
El SQL Microsoft
Servidor controlador ODBC y el proveedor OLE DB para SQL Server
establecen automáticamente ANSI_PADDING EN
para cada conexión. Esto se puede configurar en orígenes de datos ODBC o
mediante atributos o propiedades de conexión. Para obtener más
información, vea SET ANSI_PADDING (Transact-SQL).
53. La captura de los resultados de la instrucción
UPDATE
Los ejemplos de esta sección muestran cómo utilizar la cláusula
OUTPUT para devolver información de, o expresiones basadas en
cada fila afectada por una instrucción UPDATE. Estos resultados
pueden ser devueltos a la aplicación de procesamiento para su uso
en cosas tales como mensajes de confirmación, archivos, y otros
requisitos de aplicación tales.
54. UPDATETEXT
Actualiza un texto existente, ntext o campo de imagen. Utilice
UPDATETEXT para cambiar sólo una parte de un texto, ntext o
columna de imagen en su lugar. Utilice WRITETEXT para
actualizar y reemplazar un texto, ntext o campo de imagen.
Permisos
Requiere el permiso UPDATE en la tabla especificada.
56. WITH
common_table_expression
• Especifica un conjunto con nombre temporal
resultado, conocido como una expresión de tabla común
(CTE). Esto se deriva de una consulta simple y se define en el
ámbito de ejecución de una sola instrucción
SELECT, INSERT, UPDATE o DELETE. Esta cláusula también se
puede utilizar en una instrucción CREATE VIEW, como parte de
su instrucción SELECT que define. Una expresión de tabla
común pueden incluir referencias a sí mismo. Esto se conoce
como una expresión de tabla común recursiva
57. WRITETEXT
• Permite el registro mínimo, la actualización interactiva de un
texto existente, ntext o columna de imagen. WRITETEXT
sobrescribe los datos existentes en la columna afectada.
WRITETEXT no se puede utilizar
en las columnas text, ntext e image en las vistas.
• Permisos
Requiere el permiso UPDATE en la tabla especificada. El
permiso es transferible cuando ACTUALIZAR
permiso se transfiere.
58. Transact-SQL Syntax
Conventions
• En la tabla siguiente se enumeran y describen las
convenciones que se utilizan en los diagramas de
sintaxis en la
Transact-SQL Reference.