Sql server express edition 2012 libro

58
Universidad Veracruzana SISTEMAS COMPUTACIONALES ADMINISTRATIVOS Bases de Datos SQL SERVER 2012 TRANSACT-SQL DML REFERENCE . Integrantes: Badillo León José Alberto Gerardo García Ochoa Daniel García Uscanga Osmar Zaragoza Martínez Fernández Hernández José Luis

Transcript of Sql server express edition 2012 libro

Page 1: Sql server express edition 2012 libro

Universidad Veracruzana

SISTEMAS COMPUTACIONALES ADMINISTRATIVOS

Bases de Datos

SQL SERVER 2012 TRANSACT-SQL DML REFERENCE.

Integrantes:

Badillo León José AlbertoGerardo García OchoaDaniel García Uscanga

Osmar Zaragoza MartínezFernández Hernández José Luis

Page 2: Sql server express edition 2012 libro

INTRODUCCIÓN.El 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.

Page 3: Sql server express edition 2012 libro

CONTENIDO• Lenguaje de manipulación de datos (DML)• GRANEL• DELETE• FROM• Sugerencias de combinación, consulta y de tabla• INSERT• MERGE• OPCIÓN Cláusula, SALIDA Cláusula• READTEXT• Condiciones de búsqueda• SELECT • Cláusula SELECT, Ejemplos SELECT• Cláusula FOR• GROUP BY• HAVING• Cláusula INTO• La cláusula ORDER BY• SOBRE Cláusula• Tabla Constructor Valor• TOP• ACTUALIZACIÓN• UPDATETEXT• WHERE• CON common table expression• WRITETEXT• Transact-SQL Convenciones de sintaxis

Page 4: Sql server express edition 2012 libro

Lenguaje de manipulación de datos (DML) Declaraciones

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 los datos de un servidor SQL base de datos en esta sección.

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 5: Sql server express edition 2012 libro

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 (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 6: Sql server express edition 2012 libro

BULK INSERT

Importa un archivo de datos en una tabla o vista de base de datos en un formato especificado por el usuario.

Page 7: Sql server express edition 2012 libro

sintaxis[Database name. [Schema name]. | Schema name. ] [table name | view name]FROM 'data file'[WITH ([[,] BATCHSIZE =batch size][ [, ] CHECK_CONSTRAINTS ][ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code page' } ][ [ , ] DATAFILETYPE ={‘char’ | 'native'| 'wide char' | 'wide native’} ][ [ , ] FIELDTERMINATOR = 'field terminator' ][ [ , ] FIRSTROW = first row ][ [ , ] FIRE_TRIGGERS ][ [ , ] FORMATFILE ='format_file_path' ][ [ , ] KEEPIDENTITY ][ [ , ] KEEPNULLS ][ [ , ] KILOBYTES_PER_BATCH =kilobytes_per_batch ][ [ ,] LASTROW =last row ][ [ , ] MAXERRORS =max_errors ][ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ][ [ , ] ROWS_PER_BATCH =rows_per_batch ][ [ , ] ROWTERMINATOR ='row terminator' ][ [ , ] TABLOCK ][ [ , ] ERRORFILE ='filename' ])]

Page 8: Sql server express edition 2012 libro

ARGUMENTOSdatabase_nameEs el nombre de base de datos en la que la tabla o vista especificada reside. Si no se especifica, es la base de datos actual.

schema_nameEs el nombre de la tabla o vista es opcional schema.schema_name si el esquema predeterminado para el usuario que realiza la operación de importación masiva es el esquema de la tabla o ver.

Page 9: Sql server express edition 2012 libro

table_nameEs el nombre de la tabla o vista a la importación masiva de datos en sólo los puntos de vista en el que todas las columnas se refieren a la misma tabla base pueden ser utilizados.

'Data_file'Es la ruta completa del archivo de datos que contiene los datos a importar a la tabla especificada o ver.

BATCHSIZE = batch_sizeEspecifica el número de filas de un lote.

Page 10: Sql server express edition 2012 libro

CHECK_CONSTRAINTSEspecifica que todas las restricciones de la tabla o vista de destino deben comprobarse durante la operación de importación masiva.

DATAFILETYPE value All data represented in:char (default) Carácter de formato.

Para obtener más información, consulte Uso de caracteresFormato para importar o exportar datos.

Native Nativos (base de datos) los tipos de datos. Cree los datos de archivo nativo de importación masiva de datos de SQL Server con la utilidad bcp. El valor nativo ofrece un rendimiento superior alternativa al valor char.Para obtener más información, consulte Uso de Native. Formato para importar o exportar datos.

widechar Caracteres Unicode.Para obtener más información, consulte Uso de Unicode. Carácter de formato para importar o exportar datos.

widenative Nativos (base de datos) los tipos de datos, excepto en char, varchar y columnas de texto, en el que hay datos almacenan como Unicode. Cree el widenative archivo de datos de importación masiva de datos desde SQL Servidor mediante la utilidad bcp. El valor widenative ofrece un mayor desempeño alternativo a widechar. Si el archivo de datos contiene caracteres extendidos ANSI, especificar widenative.Para obtener más información, consulte Uso de Unicode. Formato nativo para importar o exportar datos.

Page 11: Sql server express edition 2012 libro

BULK INSERT aplica estrictos controles de validación de datos y los 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 verifica que:• Las representaciones nativas de flotador o tipos de datos reales son válidos.• Los datos Unicode tienen una longitud de un byte.

Page 12: Sql server express edition 2012 libro

Tipos de datos para granel Exportación o importación de documentos XML de SQL para la exportación a granel o importación de datos XML de SQL, utilice uno de los siguientes tipos de datos en el archivo de formato:

tipo de datos EfectoSQLCHAR o VARCHAR de SQL Los datos se envían en la página de

código de cliente o en la página de códigos implícitos en el cotejo). El efecto es el mismo que si se especifica la DATAFILETYPE = 'char' sin especificar un formato de archivo.

SQLNCHAR o SQLNVARCHAR

Los datos se envían como Unicode. El efecto es el equivale a especificar la DATAFILETYPE = 'widechar "sin especificar un archivo de formato.

SQLBINARY o SQLVARYBINLos datos se envían sin ninguna conversión.

Page 13: Sql server express edition 2012 libro

EJEMPLOSUtilizar tubos para importar datos desde un archivo. El ejemplo siguiente orden importaciones detalle la información en el AdventureWorks.Sales.SalesOrderDetail tabla del archivo de datos especificado utilizando una barra vertical (|) como el terminador de campo y | \ n como terminador de fila.AdventureWorks.Sales.SalesOrderDetail BULK INSERT DE LA "F: \ órdenes \ lineitem.tbl 'WITH (FIELDTERMINATOR = '|', ROWTERMINATOR = '| \ n')

Page 14: Sql server express edition 2012 libro

REMARKS.Las sugerencias de la tabla se ignora si no se accede a la tabla por el plan de consulta. Esto puede ser causado por AWQ el optimizador que optara por no acceder a la tabla en absoluto, o porque una vista indizada ha accedido en su lugar. En este último caso, el acceso a una vista indizada puede evitarse mediante la opción (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 correspondientes pruebas de consistencia de bloqueos.

Bloqueo de pistas ROWLOCK, UPDLOCK Y XLOCK que adquieren nivel de fila puede colocar candados en claves de índice en lugar de las filas de datos reales.

Page 15: Sql server express edition 2012 libro

Si una tabla contiene columnas calculadas que se calculan por las expresiones o funciones de acceso columnas de otras tablas, las sugerencias de tabla no se utilizan en las tablas y no se propagan.

SQL Server no permite la sugerencia de tabla más de una de cada uno de los siguientes grupos de cada tabla en la cláusula FROM:

Granularity hints: PAGLOCK NOLOCK, READCOMMITTEDLOCK, ROWLOCK, TABLOCK, o TABLOCKX.

Isolation level hints: HOLDLOCK, NOLOCK, READCOMMITTED, REPEATABLEREAD, SERIALIZABLE.

Un índice filtrado se puede utilizar como una sugerencia de tabla, pero hará que el optimizador de consulta genere el error 8622 si no se cubren todas las filas que la consulta ha seleccionado.

Page 16: Sql server express edition 2012 libro

INSERT.Añade una o más filas en una tabla o una vista en SQL Server 2012.

WITH <common_table_expression>Especifica el conjunto con nombre temporal resultado, conocido también como expresión de tabla común, define en el ámbito de la instrucción INSERT. El conjunto de resultados se deriva de una sentencia SELECT.

TOP (expression) [PERCENT]. Especifica el número o porcentaje de filas aleatorias que se insertarán. Expresión que puede ser un número o un porcentaje de las filas. INTO.Es una palabra clave opcional que se puede usar entre INSERT y la tabla de destino.

Page 17: Sql server express edition 2012 libro

nombre_servidor.Es el nombre del servidor vinculado en el que la tabla o vista es located.server_name puede especificar como un nombre de servidor vinculado, o mediante el uso de la función OPENDATASOURCE.  

database_nameEs el nombre de la base de datos. schema_nameEs el nombre del esquema al que pertenece la tabla o vista pertenece. table_orview_nameEs el nombre de la tabla o vista que va a recibir los datos. Una variable de tabla, dentro de su ámbito de aplicación, se puede utilizar como origen de tabla en una instrucción INSERT comunicado. La vista hace referencia table_or_view_name debe ser actualizable y hacer referencia exactamente una base de la tabla en la cláusula FROM de la vista.

rowset_function_limitedEs o bien la función OPENQUERY u OPENROWSET. El uso de estas funciones es sujeto a las capacidades del proveedor OLE DB que tiene acceso al objeto remoto.

Page 18: Sql server express edition 2012 libro

WITH (<table_hint_limited> [... n])Especifica una o más sugerencias de tabla permitidas para una tabla de destino. La palabra clave WITH y los paréntesis son necesarios.

WHERE <search_condition>Hay alguna cláusula WHERE que contiene una <search_condition> válido que filtra las filas devuelto por <dml_statement_with_output_clause>. Cuando se usa en este contexto, no puede <search_condition> contener subconsultas, funciones escalares definidas por el usuario que realiza acceso a los datos agregados, funciones, TEXTPTR o predicados de texto completo de búsqueda.

FIRE_TRIGGERSEspecifica que los desencadenadores de inserción definidos en la tabla de destino durante la ejecución binario flujo de datos de operación de carga.

Page 19: Sql server express edition 2012 libro

Mejores prácticas para la importación masiva de datos.Usted puede utilizar INSERT INTO SELECT FROM <target_table> <columnas> <source_table> para transferir eficientemente un gran número de filas de una tabla, tal como una tabla de etapas, a otro tabla con registro mínimo.

El registro mínimo puede mejorar el rendimiento de la instrucción y reducir la posibilidad de la operación de llenado del espacio de registro de transacciones disponible durante el transacción.

El registro mínimo para esta afirmación tiene los siguientes requisitos:

El modelo de recuperación de la base de datos se establece en simple o masivo que ha iniciado sesión.

La tabla de destino es un montón vacío o no vacío. La tabla de destino no se utiliza en la replicación. La sugerencia TABLOCK está especificada para la tabla de destino.

Page 20: Sql server express edition 2012 libro

DATA TYPES.

Data type Default operation

Char Valor con espacios para el ancho definido de columna.

Varchar Eliminar espacios finales hasta el último no-espacio personaje o a un carácter de un solo espacio para cadenas compuestas solamente de espacios.

Varbinary Elimina los ceros finales.

Page 21: Sql server express edition 2012 libro

MERGERealiza operaciones de inserción, actualización o eliminación en una tabla de destino basado en los resultados de una combinación de 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.

La instrucción MERGE puede tener como máximo dos cláusulas cuando hay coincidencia. Si dos cláusulas se especifican, a continuación, la primera cláusula debe ir acompañada de una Y <search_condition> cláusula. Para cualquier fila, la segunda cláusula WHEN es MATCHED sólo se aplica si el primero no lo es.

Page 22: Sql server express edition 2012 libro

Si hay dos cláusulas cuando coinciden, entonces se debe especificar una acción UPDATE y hay que especificar una acción DELETE. Si la actualización es especificada en la cláusula <merge_matched>, y más de una fila de <table_source> coincide con una fila de target_table basado en <merge_search_condition>, SQL Server devuelve un error.

La instrucción MERGE no puede actualizar la misma fila más de una vez, o actualizar y borrar la misma fila.

MERGE está disponible tanto en 90 y 100 niveles de compatibilidad de base de datos, sin embargo la palabra clave no está completamente reservado cuando el nivel de compatibilidad de base de datos está establecido en 90.

Page 23: Sql server express edition 2012 libro

Usar MERGE para realizar operaciones INSERT y UPDATE en un objetivo tabla utilizando una tabla de origen deriva. Los usos en el siguiente ejemplo MERGE para modificar la tabla SalesReason ya sea por la actualización o insertar filas.

Cuando el valor de NewName en la tabla de origen coincide con un valor en la columna Nombre de la tabla de destino, (SalesReason), la columna ReasonType se actualiza en la tabla de destino. Cuando el valor de NewName no coincide, la fila de origen se inserta en la tabla de destino.

La tabla de origen es una tabla derivada que usa el constructor de tabla de Transact-SQL para especificar varias filas para la tabla de origen.

Page 24: Sql server express edition 2012 libro

• On • En este ejemplo se elimina una fila de una tabla que se

utiliza como cola y devuelve los valores eliminados al procesamiento de las aplicaciones en una sola acción. Semántica otros también pueden ser aplicados, tales como utilizar una tabla para implementar una pila. Sin embargo, SQL Server no garantiza el orden en que filas son procesados y devueltos por las instrucciones DML con la cláusula OUTPUT. Corresponde a la solicitud de inclusión de una cláusula WHERE apropiada que garantice la semántica deseada, o entender que cuando hay varias filas aptas para la operación de DML, no hay ninguna garantía de orden. El ejemplo siguiente utiliza una subconsulta y asume la singularidad es una característica de la Columna DatabaseLogID para implementar la semántica de ordenación deseada.

Page 25: Sql server express edition 2012 libro

USE tempdb;GOCREATE TABLE dbo.table1(id INT,employee VARCHAR(32))goINSERT INTO dbo.table1 VALUES(1, 'Fred'),(2, 'Tom'),(3, 'Sally'),(4, 'Alice');GODECLARE @MyTableVar TABLE(id INT,employee VARCHAR(32));PRINT 'table1, before delete'SELECT * FROM dbo.table1;DELETE FROM dbo.table1OUTPUT DELETED.* INTO @MyTableVarWHERE id = 4 OR id = 2;PRINT 'table1, after delete'SELECT * FROM dbo.table1;

PRINT '@MyTableVar, after delete'SELECT * FROM @MyTableVar;DROP TABLE dbo.table1;--Results--table1, before delete--id employee------------- --------------------------------1 Fred--2 Tom--3 Sally--4 Alice----table1, after delete--id employee------------- --------------------------------1 Fred--3 Sally--@MyTableVar, after delete--id employee------------- --------------------------------2 Tom--4 Alice

Page 26: Sql server express edition 2012 libro

• 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 27: Sql server express edition 2012 libro

• 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 28: Sql server express edition 2012 libro

• USE AdventureWorks2012;• GO• DECLARE @MyTableVar table( NewScrapReasonID smallint,• Name varchar(50),• ModifiedDate datetime);• INSERT Production.ScrapReason• OUTPUT INSERTED.ScrapReasonID, INSERTED.Name,

INSERTED.ModifiedDate• 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.

Page 29: Sql server express edition 2012 libro

• LEA EL TEXTOLeer texto, texto, o valores de la imagen de un texto, ntext o columna de imagen, a partir de una. Desplazamiento especificado y leer el número de bytes especificado

• ImportanteEsta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y piense en modificar las aplicaciones que actualmente utilizan esta característica. Utilice la función SUBSTRING lugar. Transact-SQL Convenciones de sintaxis.

Page 30: Sql server express edition 2012 libro

• Syntax

READTEXT { table.column text_ptr offset size } [ HOLDLOCK ]

Argumentos

• table.columnEs el nombre de una tabla y la columna desde la que leer. Los nombres de tablas y columnas deben cumplir con las reglas de los identificadores. Especificación de la tabla y nombres de columna se requiere, sin embargo, especificar el nombre de base de datos y nombres de los propietarios es opcional.

• text_ptrEs un puntero de texto válido. text_ptr debe ser binario (16).

• offsetEs el número de bytes (cuando los datos de texto o imagen tipos son utilizados) o caracteres(cuando el tipo de datos ntext se utiliza) para saltar antes de que empiece a leer el texto, la imagen o datos ntext.

• TamañoEs el número de bytes (cuando los datos de texto o imagen tipos son utilizados) o caracteres (cuando el tipo de datos ntext se usa) de datos a leer. Si el tamaño es 0, 4 bytes KB de datos se lee.

Page 31: Sql server express edition 2012 libro

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 32: Sql server express edition 2012 libro

Los pasos siguientes muestran el orden de procesamiento lógico, o orden de enlace, para una sentencia SELECT.

• 1. FROM• 2. ON• 3. JOIN• 4. WHERE• 5. GROUP BY• 6. WITH CUBE or WITH ROLLUP• 7. HAVING• 8. SELECT• 9. DISTINCT• 10. ORDER BY• 11. TOP

Page 33: Sql server express edition 2012 libro

Group ByAgrupa un conjunto seleccionado de filas en un conjunto de filas de resumen por 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 uno estilo de sintaxis puede utilizarse en una sola instrucción SELECT.

Page 34: Sql server express edition 2012 libro

En este tema, una cláusula GROUP BY se puede describir como general o simple:

• 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 CON CUBE, ROLLUP o WITH. GROUP BY (), total general, se considera un simple GROUP BY. Transact-SQL Convenciones de sintaxis (Transact-SQL)

Page 35: Sql server express edition 2012 libro

• Limitaciones sintaxis

GROUPING SETS no están permitidos en la cláusula GROUP BY a menos que sean parte de una lista GROUPING SETS. Por ejemplo, GROUP BY C1, (C2, ..., Cn) no está permitido, pero GROUP BYGROUPING SETS (C1, (C2, ..., Cn)) está permitido.

GROUPING SETS no se permiten dentro de GROUPING SETS. Por ejemplo, GROUP BY GROUPING SETS (C1, GROUPING SETS (C2, C3)) no está permitido.

La no-ISO TODOS, CON CUBE, ROLLUP y con palabras clave no están permitidos en un cláusula GROUP BY con palabras claves ROLLUP, CUBE o GROUPING SETS.

Page 36: Sql server express edition 2012 libro

HAVINGEspecifica una condición de búsqueda para un grupo o un agregado. HAVING sólo se puede utilizar con laLa sentencia SELECT. HAVING se suele utilizar en una cláusula GROUP BY. Cuando GROUP BY no esutilizado, HAVING se comporta como una cláusula WHERE.El texto, imagen, y tipos de datos ntext no se puede utilizar en una cláusula HAVING

Syntax[ HAVING <search condition> ]

Page 37: Sql server express edition 2012 libro

CLÁUSULA INTOSELECT ... INTO crea una nueva tabla en el grupo de archivos predeterminado e inserta las filas resultantes de la consulta en el mismo.

Syntax[ INTO new_table ]

Page 38: Sql server express edition 2012 libro

NEW_TABLEEspecifica el nombre de una tabla que se debe crear sobre la base de las columnas de la lista de selección y las filas elegido de la fuente de datos.El formato de new_table se determina mediante la evaluación de las expresiones de la lista de selección.Las columnas de new_table se crean en el orden especificado por la lista de selección. cadacolumna en new_table tiene el mismo nombre, tipo de datos nulabilidad y valor como elexpresión correspondiente en la lista de selección.

Page 39: Sql server express edition 2012 libro

LA CLÁUSULA ORDER BYOrdena los datos devueltos por una consulta en SQL Server 2012. Utilice esta cláusula para:• Pida el conjunto de resultados de una consulta de la lista de columnas especificado y, opcionalmente, limitar las filasdevuelto a un rango especificado. El orden en el que las filas se devuelven en un conjunto de resultados no songarantizada 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.Transact-SQL Convenciones de sintaxis

Page 40: Sql server express edition 2012 libro

SINTAXISORDER BY order_by_expression[COLLATE][ASCArgumentos| DESC][, ... N][<offset_fetch>]<offset_fetch> :: ={OFFSET {integer_constant | offset_row_count_expression} {ROW | FILAS}[{FETCH FIRST | NEXT} {integer_constant | fetch_row_count_expression} {ROW | FILAS}SOLAMENTE]}

Page 41: Sql server express edition 2012 libro

OVER CLÁUSULADetermina la partición y el ordenamiento de un conjunto de filas antes de la función de ventana asociado esaplicado. Es decir, la cláusula OVER define una ventana o especificado por el usuario conjunto de filas dentro de una consultaConjunto de resultados. Una función de ventana se calcula un valor para cada fila de la ventana. Usted puede utilizar elCláusula OVER con funciones para calcular valores agregados tales como medias móviles, acumulativosagregados, totales acumulados, o un grupo de los mejores resultados por Numero Se aplica a:• Funciones de Clasificación• Las funciones de agregado• Funciones analíticas

Page 42: Sql server express edition 2012 libro

TABLA DE VALOR CONSTRUCTOR Especifica un conjunto de expresiones de valor de fila

para ser construidos en una tabla. La tabla de Transact-SQL

constructor valor permite que varias filas de datos que se especifica en una instrucción DML único. laconstructor tabla de valores se puede especificar en la cláusula VALUES de la instrucción INSERT, en laUSO cláusula <source tabla> de la instrucción MERGE, y en la definición de una tabla derivada enla cláusula FROM.

Page 43: Sql server express edition 2012 libro

SYNTAXVALUES ( <row value expression list>) [ ,...n ]<row value expression list> ::={<row value expression> } [ ,...n ]<row value expression> ::={ DEFAULT | NULL | expression }

Page 44: Sql server express edition 2012 libro

TOPLimita 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

resultadosse limita a la primera número N de filas ordenadas, de lo contrario, se devuelve el primer número N de azarfilas. Utilice esta cláusula para especificar el número

de filas de regresar de una instrucción SELECT oafectada por una instrucción INSERT, UPDATE, MERGE

o DELETE.

Page 45: Sql server express edition 2012 libro

UPDATE

Cambiar datos existentes en una tabla o vistas en las consultas de sql server 2012

Page 46: Sql server express edition 2012 libro

Actualización de texto, ntext e image

Columnas

Para remplazar o modificar bloques grandes de texto, ntext o datos de imagen, utilice WRITETEXT o UPDATETEXT lugar de la instrucción UPDATE.

El ntext, text, y los tipos de datos de imagen se quitará en una versión futura de Microsoft SQL Server. Evite el uso de estos tipos de datos en nuevos trabajos de desarrollo y piense en modificar aplicaciones que las usan actualmente. Utilice nvarchar (max), varchar (max), y varbinary (max).

Page 47: Sql server express edition 2012 libro

Actualización de tipo definido por el

usuario Columnas

• Suministrar un valor en un sistema de SQL Server de tipo de datos, siempre y cuando el tipo definido por el usuario admite la conversión implícita o explícita de ese tipo.

ACTUALIZACIÓN CiudadesSET Ubicación = CONVERT (Point, .3:46.2 '12 ')

WHERE Nombre = 'Anchorage';

Page 48: Sql server express edition 2012 libro

Control de erroresSi una actualización de una fila infringe una restricción o norma, viola el ajuste NULL para la columna, o el nuevo valor es un tipo de datos incompatible, se cancela la instrucción, se devuelve un error y no se actualizan los registros.Cuando una instrucción UPDATE encuentra un error aritmético (desbordamiento, división por cero, o un error de dominio) al evaluar una expresión, la actualización no se realiza. El resto del lote es no ejecutado, y un mensaje de error se devuelve.

Page 49: Sql server express edition 2012 libro

Comportamiento• Bloqueo de comportamiento: Una

instrucción UPDATE siempre adquiere un exclusivo (X) sobre la tabla que se modifica, y tiene que el bloqueo hasta que la transacción se complete. Con un bloqueo exclusivo, ninguna otra transacción puede modificar datos. Puede especificar sugerencias de tabla para anular este comportamiento predeterminado para la duración de la actualización declaración especificando otro método de bloqueo, sin embargo, se recomienda que sólo se utilicen las sugerencias como último recurso, por experimentados desarrolladores y administradores de bases de datos

Page 50: Sql server express edition 2012 libro

SeguridadPermisos de actualización son necesarios en la tabla de destino. Permisos SELECT también son necesarios para la tabla que se actualizará si la instrucción UPDATE contiene una cláusula WHERE, o si la expresión en la cláusula SET utiliza una columna en la tabla.ACTUALIZACIÓN de permisos predeterminados a miembros de la función fija de servidor sysadmin, db_owner y la db_datawriter funciones fijas de base de datos y el propietario de la tabla. Los miembros de las funciones sysadmin, db_owner, y db_securityadminroles, y el propietario de la tabla pueden transferir permisos a otros usuarios.

Page 51: Sql server express edition 2012 libro

Sintaxis básica

Los ejemplos de esta sección muestran la funcionalidad básica de la instrucción UPDATE utilizando el sintaxis mínimo requerido.

A. Usar una instrucción UPDATE sencillo. El ejemplo siguiente actualiza una sola columna para todas las filas de la tabla Person.Address

USE AdventureWorks2012; GO

UPDATE Person.Address SET ModifiedDate = GETDATE();

Page 52: Sql server express edition 2012 libro

UPDATETEXTActualiza un texto existente, ntext o campo de imagen. Utilice UPDATETEXT para cambiar sólo una parte de un text, ntext o image columna en su lugar. Utilice WRITETEXT para actualizar y remplazar un texto conjunto, ntext o campo de imagen. Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite el uso de este característica en nuevos trabajos de desarrollo y piense en modificar las aplicaciones que actualmente utilizan esta característica. Utilice los tipos de datos de valores grandes . WRITE de la instrucción UPDATE en su lugar.

Page 53: Sql server express edition 2012 libro

sintaxis UPDATETEXT [BULK] { table_name.dest_column_name dest_text_ptr } { NULL | insert_offset } { NULL | delete_length } [ WITH LOG ] [ inserted_data | { table_name.src_column_namesrc_text_ptr } ]

Permite cargar herramientas para cargar un flujo de datos binarios. La corriente debe ser proporcionado por la herramienta en el nivel de protocolo TDS. Cuando la corriente de datos no está presente la consulta procesador ignora la opción BULK

UPDATETEXT

Page 54: Sql server express edition 2012 libro

WHERE

Especifica la condición de búsqueda de las filas devueltas por la consulta.

Syntax[ WHERE <search_condition> ] Argumentos<search_condition>

Page 55: Sql server express edition 2012 libro

Define las condiciones que deben cumplirse para las filas que se devuelven. No hay límite para la número de predicados que se pueden incluir en una condición de búsqueda. Para obtener más información sobre las condiciones de búsqueda y predicados, vea Condiciones de búsqueda.

WHERE.

Page 56: Sql server express edition 2012 libro

WITH common_table_expression

Especifica un conjunto con nombre temporal resultado, conocido como una expresión de tabla común (CTE). Es derivado de una consulta simple y se define en el ámbito de ejecución de un solo SELECT, INSERT, UPDATE o DELETE. Esta cláusula también se puede utilizar en un CREATE VIEW declaración como parte de su instrucción SELECT que define. Una expresión de tabla común puede incluir referencias a ella misma. Esto se conoce como una expresión de tabla común recursiva.

Page 57: Sql server express edition 2012 libro

Syntax [ WITH <common_table_expression> [ ,...n ] ] <common_table_expression>::= expression_name [ (column_name [ ,...n ] ) ] AS (CTE_query_definition)

Page 58: Sql server express edition 2012 libro

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.

Syntax WRITETEXT [BULK] { table.column text_ptr } [ WITH LOG ] { data }