expo

58
EQUIPO 8 INTEGRANTES: LAYNA LÓPEZ JESÚS ANDRÉS ESPINOSA GÓMEZ AMIR JOSELEPH FLORES CAMPOS AMIR

Upload: amir-core

Post on 22-Dec-2014

482 views

Category:

Technology


7 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Expo

EQUIPO 8 INTEGRANTES:

LAYNA LÓPEZ JESÚS ANDRÉSESPINOSA GÓMEZ AMIR JOSELEPH

FLORES CAMPOS AMIR

Page 2: Expo

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)

Page 3: Expo

Clause

Can be used in these statementsFROM (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 (Transact- SQL)

DELETE, INSERT, MERGE, SELECT, UPDATE

En la tabla siguiente se enumeran las cláusulas que se utilizan en varias sentencias DML o cláusulas.

Page 4: Expo

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.

Page 5: Expo

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).

Page 6: Expo

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.

Page 7: Expo

RestriccionesCuando 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.

Page 8: Expo

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.

Page 9: Expo

Se puede implementar el control de errores para la instrucción DELETE especificando la declaración en unConstrucció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.

CONTROL DE ERRORES

Page 10: Expo

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.

Page 11: Expo

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; GODELETE 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

Page 12: Expo

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; GODECLARE @MyTableVar table ( ProductID int NOT NULL, ProductName nvarchar(50)NOT NULL, ProductModelID int NOT NULL, PhotoID int NOT NULL); DELETE Production.ProductProductPhotoOUTPUT DELETED.ProductID, p.Name, p.ProductModelID, DELETED.ProductPhotoIDINTO @MyTableVar FROM Production.ProductProductPhoto AS phJOIN Production.Product as pON ph.ProductID = p.ProductID WHERE p.ProductModelID BETWEEN 120 and 130; --Display the results of the table variable. SELECT ProductID, ProductName, ProductModelID, PhotoID FROM @MyTableVarORDER BY ProductModelID; GO

Page 13: Expo

FROMEspecifica 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.

Page 14: Expo

PERMISOSRequiere los permisos para el DELETE, SELECT o UPDATE.

A. Utilizando un simple cláusula FROM

El ejemplo siguiente recupera el TerritoryID y columnas Nombre de la tabla SalesTerritory en la base de datos de ejemplo AdventureWorks2012.

USO AdventureWorks2012; GOSELECT TerritoryID, Nombre DE ORDEN POR Sales.SalesTerritory TerritoryID;

Éste es el conjunto de resultados.

Nombre TerritoryID-----------------------------------------1 Northwest2 noreste3 Central4 sudoeste

5 Southeast

6 Canadá 7 Francia

8 Alemania9 Australia10 Reino Unido(10 fila (s) affected)

Page 15: Expo

HintsLas 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.

Sugerencias de combinación especifica que el optimizador de consultas de ejecución de una estrategia de combinación entre dos tablas.

Join Hints

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.

Page 16: Expo

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.

Page 17: Expo

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 .

Page 18: Expo

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ónDebido 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.

Page 19: Expo

ObservacionesLas 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.

Page 20: Expo

Usando NOEXPANDNOEXPAND 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.

Page 21: Expo

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 indiciopara forzar un punto de vista particular indexado para ser utilizado en una consulta que no nombra a la vista directamente en laClá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

Page 22: Expo

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 ALTERpermisos en la tabla.

Page 23: Expo

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.

Page 24: Expo

Data type Default operation

char

varchar

varbinary

Pad valor con espacios para el ancho definido de la columna

Eliminar espacios finales hasta el último carácter no-espacio o un carácter de un solo espacio paracadenas compuestas solamente de espacios.

Eliminar los ceros finales.

Page 25: Expo

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).

Page 26: Expo

Control de erroresPuede implementar el manejo de errores para la instrucción INSERT especificando la declaración en unConstrucció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 siSET ARITHABORT se establece en ON. La carga se detiene y aparece un mensaje de error se devuelve. duranteevaluar 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.

Page 27: Expo

MERGERealiza 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.

Page 28: Expo

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.

Page 29: Expo

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.

Page 30: Expo

USE AdventureWorks2012;GODECLARE @MyTableVar table( NewScrapReasonID smallint,Name varchar(50),ModifiedDate datetime);INSERT Production.ScrapReasonOUTPUT INSERTED.ScrapReasonID, INSERTED.Name, INSERTED.ModifiedDateINTO @MyTableVarVALUES (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, ModifiedDateFROM Production.ScrapReason;GO.

Page 31: Expo

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.

Page 32: Expo

• 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

Page 33: Expo

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.

Page 34: Expo

PermisosSelecció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.

Page 35: Expo

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:

Page 36: Expo

Una cláusula GROUP BY general incluye GROUPING SETS, CUBE, ROLLUP, CUBE CON oWITH 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.

Page 37: Expo

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.

Page 38: Expo

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.

Page 39: Expo

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.

Page 40: Expo

Interoperabilidad

Cuando se utiliza con un SELECT ... INTO para insertar filas de otra fuente, el ORDER BYclá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.

Page 41: Expo

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 unClá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.

Page 42: Expo

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 esutilizada en estos objetos, la cláusula sólo se utiliza para determinar las filas devueltas por la cláusula TOP

Page 43: Expo

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.

Page 44: Expo

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.

Page 45: Expo

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.

Page 46: Expo

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.

Page 47: Expo

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.

Page 48: Expo

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.

Page 49: Expo

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).

Page 50: Expo

UPDATE

Los cambios de datos existentes en una tabla o vista de SQL Server 2012. Para ejemplos, vea Ejemplos.

Page 51: Expo

Con la AsistenciaSoporte 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.

Page 52: Expo

Tipos de datosTodas 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 MicrosoftServidor 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).

Page 53: Expo

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.

Page 54: Expo

UPDATETEXTActualiza 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.

Page 55: Expo

WHERE• Especifica la condición de búsqueda de las filas devueltas por

la consulta.

Page 56: Expo

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

Page 57: Expo

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 utilizaren las columnas text, ntext e image en las vistas.

• Permisos

Requiere el permiso UPDATE en la tabla especificada. El permiso es transferible cuando ACTUALIZARpermiso se transfiere.

Page 58: Expo

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.