sqlserverexpressedition2012libro-120922231317-phpapp02

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

description

SQL

Transcript of sqlserverexpressedition2012libro-120922231317-phpapp02

Presentacin de PowerPoint

Universidad Veracruzana

SISTEMAS COMPUTACIONALES ADMINISTRATIVOS

Bases de Datos

SQL SERVER 2012 TRANSACT-SQL DML REFERENCE.

Integrantes:

Badillo Len Jos AlbertoGerardo Garca OchoaDaniel Garca UscangaOsmar Zaragoza MartnezFernndez Hernndez Jos Luis

INTRODUCCIN.El lenguaje de manipulacin 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.

CONTENIDOLenguaje de manipulacin de datos (DML)GRANELDELETEFROMSugerencias de combinacin, consulta y de tablaINSERTMERGEOPCIN Clusula, SALIDA ClusulaREADTEXTCondiciones de bsquedaSELECT Clusula SELECT, Ejemplos SELECTClusula FORGROUP BYHAVINGClusula INTOLa clusula ORDER BYSOBRE ClusulaTabla Constructor ValorTOPACTUALIZACINUPDATETEXTWHERECON common table expressionWRITETEXTTransact-SQL Convenciones de sintaxis

Lenguaje de manipulacin de datos (DML) Declaraciones

Lenguaje de manipulacin 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 seccin.

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)Clause Can be used in these statementsFROM (Transact-SQL)DELETE, SELECT, UPDATEHints (Transact-SQL)DELETE, INSERT, SELECT, UPDATEOPTION Clause (Transact-SQL)DELETE, SELECT, UPDATEOUTPUT Clause (Transact-SQL)DELETE, INSERT, MERGE, UPDATESearch Condition (Transact-SQL)DELETE, MERGE, SELECT, UPDATETable Value Constructor (Transact-SQL)FROM, INSERT, MERGETOP (Transact-SQL)DELETE, INSERT, MERGE, SELECT, UPDATEWHERE (Transact-SQL) DELETE, SELECT, UPDATEWITH common table expression (Transact-SQL)DELETE, INSERT, MERGE, SELECT,UPDATEEn la tabla siguiente se enumeran las clusulas que se utilizan en varias sentencias DML o clusulas.BULK INSERTImporta un archivo de datos en una tabla o vista de base de datos en un formato especificado por el usuario.

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' ])]

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 operacin de importacin masiva es el esquema de la tabla o ver.

table_nameEs el nombre de la tabla o vista a la importacin masiva de datos en slo 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 nmero de filas de un lote.

CHECK_CONSTRAINTSEspecifica que todas las restricciones de la tabla o vista de destino deben comprobarse durante la operacin de importacin masiva.

DATAFILETYPE valueAll data represented in:char (default)Carcter de formato.Para obtener ms informacin, consulte Uso de caracteresFormato para importar o exportar datos.NativeNativos (base de datos) los tipos de datos. Cree los datos de archivo nativo de importacin masiva de datos de SQL Server con la utilidad bcp. El valor nativo ofrece un rendimiento superior alternativa al valor char.Para obtener ms informacin, consulte Uso de Native. Formato para importar o exportar datos.widecharCaracteres Unicode.Para obtener ms informacin, consulte Uso de Unicode. Carcter de formato para importar o exportar datos.widenativeNativos (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 importacin masiva de datos desde SQL Servidor mediante la utilidad bcp. El valor widenative ofrece un mayor desempeo alternativo a widechar. Si el archivo de datos contiene caracteres extendidos ANSI, especificar widenative.Para obtener ms informacin, consulte Uso de Unicode. Formato nativo para importar o exportar datos.BULK INSERT aplica estrictos controles de validacin de datos y los datos de lectura de datos desde un archivo que podra causar scripts existentes a fallar cuando se ejecutan en datos no vlidos. Por ejemplo, BULK INSERT verifica que: Las representaciones nativas de flotador o tipos de datos reales son vlidos. Los datos Unicode tienen una longitud de un byte.

Tipos de datos para granel Exportacin o importacin de documentos XML de SQL para la exportacin a granel o importacin de datos XML de SQL, utilice uno de los siguientes tipos de datos en el archivo de formato:

tipo de datosEfectoSQLCHAR o VARCHAR de SQLLos datos se envan en la pgina de cdigo de cliente o en la pgina de cdigos implcitos en el cotejo). El efecto es el mismo que si se especifica la DATAFILETYPE = 'char' sin especificar un formato de archivo.SQLNCHAR o SQLNVARCHARLos datos se envan como Unicode. El efecto es el equivale a especificar la DATAFILETYPE = 'widechar "sin especificar un archivo de formato.SQLBINARY o SQLVARYBINLos datos se envan sin ninguna conversin.EJEMPLOSUtilizar tubos para importar datos desde un archivo. El ejemplo siguiente orden importaciones detalle la informacin 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')

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 opcin (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. Adems, 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.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 ms de una de cada uno de los siguientes grupos de cada tabla en la clusula 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.INSERT.

Aade una o ms filas en una tabla o una vista en SQL Server 2012.

WITH Especifica el conjunto con nombre temporal resultado, conocido tambin como expresin de tabla comn, define en el mbito de la instruccin INSERT. El conjunto de resultados se deriva de una sentencia SELECT.

TOP (expression) [PERCENT]. Especifica el nmero o porcentaje de filas aleatorias que se insertarn. Expresin que puede ser un nmero o un porcentaje de las filas.INTO.Es una palabra clave opcional que se puede usar entre INSERT y la tabla de destino.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 funcin 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 aplicacin, se puede utilizar como origen de tabla en una instruccin INSERT comunicado. La vista hace referencia table_or_view_name debe ser actualizable y hacer referencia exactamente una base de la tabla en la clusula FROM de la vista.

rowset_function_limitedEs o bien la funcin OPENQUERY u OPENROWSET. El uso de estas funciones es sujeto a las capacidades del proveedor OLE DB que tiene acceso al objeto remoto.WITH ( [... n])Especifica una o ms sugerencias de tabla permitidas para una tabla de destino. La palabra clave WITH y los parntesis son necesarios.

WHERE Hay alguna clusula WHERE que contiene una vlido que filtra las filas devuelto por . Cuando se usa en este contexto, no puede contener subconsultas, funciones escalares definidas por el usuario que realiza acceso a los datos agregados, funciones, TEXTPTR o predicados de texto completo de bsqueda.

FIRE_TRIGGERSEspecifica que los desencadenadores de insercin definidos en la tabla de destino durante la ejecucin binario flujo de datos de operacin de carga.Mejores prcticas para la importacin masiva de datos.Usted puede utilizar INSERT INTO SELECT FROM para transferir eficientemente un gran nmero de filas de una tabla, tal como una tabla de etapas, a otro tabla con registro mnimo.

El registro mnimo puede mejorar el rendimiento de la instruccin y reducir la posibilidad de la operacin de llenado del espacio de registro de transacciones disponible durante el transaccin.

El registro mnimo para esta afirmacin tiene los siguientes requisitos:

El modelo de recuperacin de la base de datos se establece en simple o masivo que ha iniciado sesin.La tabla de destino es un montn vaco o no vaco.La tabla de destino no se utiliza en la replicacin.La sugerencia TABLOCK est especificada para la tabla de destino.DATA TYPES.Data typeDefault operationCharValor con espacios para el ancho definido de columna.VarcharEliminar espacios finales hasta el ltimo no-espacio personaje o a un carcter de un solo espacio para cadenas compuestas solamente de espacios.VarbinaryElimina los ceros finales.MERGE

Realiza operaciones de insercin, actualizacin o eliminacin en una tabla de destino basado en los resultados de una combinacin de una tabla de origen.

Por ejemplo, puede sincronizar dos tablas mediante la insercin, actualizacin o eliminacin de las filas de una tabla basada en las diferencias que se encuentran en la otra tabla.

La instruccin MERGE puede tener como mximo dos clusulas cuando hay coincidencia. Si dos clusulas se especifican, a continuacin, la primera clusula debe ir acompaada de una Y clusula. Para cualquier fila, la segunda clusula WHEN es MATCHED slo se aplica si el primero no lo es. Si hay dos clusulas cuando coinciden, entonces se debe especificar una accin UPDATE y hay que especificar una accin DELETE. Si la actualizacin es especificada en la clusula , y ms de una fila de coincide con una fila de target_table basado en , SQL Server devuelve un error.

La instruccin MERGE no puede actualizar la misma fila ms 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.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 actualizacin 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.OnEn 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 accin. Semntica otros tambin 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 clusula OUTPUT. Corresponde a la solicitud de inclusin de una clusula WHERE apropiada que garantice la semntica deseada, o entender que cuando hay varias filas aptas para la operacin de DML, no hay ninguna garanta de orden. El ejemplo siguiente utiliza una subconsulta y asume la singularidad es una caracterstica de la Columna DatabaseLogID para implementar la semntica de ordenacin deseada.

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

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 aplicacin ya est leyendo la primera clasificacin registro de la tabla.

Ejemplos

A. Usar OUTPUT INTO con una instruccin INSERT simple

El ejemplo siguiente inserta una fila en la tabla ScrapReason y utiliza la clusula OUTPUT para devolver los resultados de la instruccin para la variable MyTableVartable @. Debido a que la columna ScrapReasonID se define con una propiedad IDENTITY, un valor no est especificado en la instruccin 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 clusula OUTPUT en la columna ID inserted.ScrapReason.

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.

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 nmero de bytes especificado

ImportanteEsta caracterstica se quitar en una versin futura de Microsoft SQL Server. Evite utilizar esta caracterstica en nuevos trabajos de desarrollo y piense en modificar las aplicaciones que actualmente utilizan esta caracterstica. Utilice la funcin SUBSTRING lugar. Transact-SQL Convenciones de sintaxis.

SyntaxREADTEXT { 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. Especificacin 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 vlido. text_ptr debe ser binario (16).offsetEs el nmero 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.TamaoEs el nmero 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 tamao es 0, 4 bytes KB de datos se lee.

SelectRecupera filas de la base de datos y permite la seleccin de una o varias filas o columnas de una o varias tablas en SQL Server 2012. La sintaxis completa de la instruccin SELECT es compleja, pero las clusulas principales se pueden resumir en:

[CON ]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.

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

1. FROM2. ON3. JOIN4. WHERE5. GROUP BY6. WITH CUBE or WITH ROLLUP7. HAVING8. SELECT9. DISTINCT10. ORDER BY11. TOP

Group ByAgrupa un conjunto seleccionado de filas en un conjunto de filas de resumen por los valores de una o ms columnas o expresiones en SQL Server 2012. Se devuelve una fila para cada grupo. Las funciones de agregado en la clusula SELECT lista SELECT proporcionar informacin acerca de cada grupo en lugar de filas individuales.

La clusula GROUP BY tiene una sintaxis compatible con ISO y una sintaxis no ISO-compliant. Slo uno estilo de sintaxis puede utilizarse en una sola instruccin SELECT. En este tema, una clusula GROUP BY se puede describir como general o simple:

Una clusula 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)

Limitaciones sintaxis

GROUPING SETS no estn permitidos en la clusula 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 estn permitidos en un clusula GROUP BY con palabras claves ROLLUP, CUBE o GROUPING SETS.

HAVINGEspecifica una condicin de bsqueda para un grupo o un agregado. HAVING slo se puede utilizar con laLa sentencia SELECT. HAVING se suele utilizar en una clusula GROUP BY. Cuando GROUP BY no esutilizado, HAVING se comporta como una clusula WHERE.El texto, imagen, y tipos de datos ntext no se puede utilizar en una clusula HAVINGSyntax[ HAVING ]CLUSULA 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 ]NEW_TABLEEspecifica el nombre de una tabla que se debe crear sobre la base de las columnas de la lista de seleccin y las filas elegido de la fuente de datos.El formato de new_table se determina mediante la evaluacin de las expresiones de la lista de seleccin.Las columnas de new_table se crean en el orden especificado por la lista de seleccin. cadacolumna en new_table tiene el mismo nombre, tipo de datos nulabilidad y valor como elexpresin correspondiente en la lista de seleccin.

LA CLUSULA ORDER BYOrdena los datos devueltos por una consulta en SQL Server 2012. Utilice esta clusula 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 clusula ORDER BY se especifica. Determinar el orden en el que los valores de rango de funcin se aplica al conjunto de resultados.Transact-SQL Convenciones de sintaxisSINTAXISORDER BY order_by_expression[COLLATE][ASCArgumentos| DESC][, ... N][] :: ={OFFSET {integer_constant | offset_row_count_expression} {ROW | FILAS}[{FETCH FIRST | NEXT} {integer_constant | fetch_row_count_expression} {ROW | FILAS}SOLAMENTE]}

OVER CLUSULADetermina la particin y el ordenamiento de un conjunto de filas antes de la funcin de ventana asociado esaplicado. Es decir, la clusula OVER define una ventana o especificado por el usuario conjunto de filas dentro de una consultaConjunto de resultados. Una funcin de ventana se calcula un valor para cada fila de la ventana. Usted puede utilizar elClusula OVER con funciones para calcular valores agregados tales como medias mviles, acumulativosagregados, totales acumulados, o un grupo de los mejores resultados por Numero Se aplica a: Funciones de Clasificacin Las funciones de agregado Funciones analticasTABLA DE VALOR CONSTRUCTOR Especifica un conjunto de expresiones de valor de fila para ser construidos en una tabla. La tabla de Transact-SQLconstructor valor permite que varias filas de datos que se especifica en una instruccin DML nico. laconstructor tabla de valores se puede especificar en la clusula VALUES de la instruccin INSERT, en laUSO clusula de la instruccin MERGE, y en la definicin de una tabla derivada enla clusula FROM.SYNTAXVALUES ( ) [ ,...n ] ::={ } [ ,...n ] ::={ DEFAULT | NULL | expression }

TOPLimita las filas devueltas en un resultado de consulta establecido en un nmero especificado de filas o porcentaje de filasen SQL Server 2012. Cuando TOP se utiliza en conjuncin con la clusula ORDER BY, el conjunto de resultadosse limita a la primera nmero N de filas ordenadas, de lo contrario, se devuelve el primer nmero N de azarfilas. Utilice esta clusula para especificar el nmero de filas de regresar de una instruccin SELECT oafectada por una instruccin INSERT, UPDATE, MERGE o DELETE.

UPDATE

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

Actualizacin de texto, ntext e image ColumnasPara remplazar o modificar bloques grandes de texto, ntext o datos de imagen, utilice WRITETEXT o UPDATETEXT lugar de la instruccin UPDATE.

El ntext, text, y los tipos de datos de imagen se quitar en una versin 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).

Actualizacin de tipo definido por el usuario ColumnasSuministrar un valor en un sistema de SQL Server de tipo de datos, siempre y cuando el tipo definido por el usuario admite la conversin implcita o explcita de ese tipo.

ACTUALIZACIN CiudadesSET Ubicacin = CONVERT (Point, .3:46.2 '12 ')WHERE Nombre = 'Anchorage';

Control de erroresSi una actualizacin de una fila infringe una restriccin o norma, viola el ajuste NULL para la columna, o el nuevo valor es un tipo de datos incompatible, se cancela la instruccin, se devuelve un error y no se actualizan los registros.Cuando una instruccin UPDATE encuentra un error aritmtico (desbordamiento, divisin por cero, o un error de dominio) al evaluar una expresin, la actualizacin no se realiza. El resto del lote es no ejecutado, y un mensaje de error se devuelve.ComportamientoBloqueo de comportamiento: Una instruccin UPDATE siempre adquiere un exclusivo (X) sobre la tabla que se modifica, y tiene que el bloqueo hasta que la transaccin se complete. Con un bloqueo exclusivo, ninguna otra transaccin puede modificar datos. Puede especificar sugerencias de tabla para anular este comportamiento predeterminado para la duracin de la actualizacin declaracin especificando otro mtodo de bloqueo, sin embargo, se recomienda que slo se utilicen las sugerencias como ltimo recurso, por experimentados desarrolladores y administradores de bases de datosSeguridadPermisos de actualizacin son necesarios en la tabla de destino. Permisos SELECT tambin son necesarios para la tabla que se actualizar si la instruccin UPDATE contiene una clusula WHERE, o si la expresin en la clusula SET utiliza una columna en la tabla.ACTUALIZACIN de permisos predeterminados a miembros de la funcin 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.

Sintaxis bsica

Los ejemplos de esta seccin muestran la funcionalidad bsica de la instruccin UPDATE utilizando el sintaxis mnimo requerido.

A. Usar una instruccin 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();

UPDATETEXTActualiza un texto existente, ntext o campo de imagen. Utilice UPDATETEXT para cambiar slo 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 caracterstica se quitar en una versin futura de Microsoft SQL Server. Evite el uso de este caracterstica en nuevos trabajos de desarrollo y piense en modificar las aplicaciones que actualmente utilizan esta caracterstica. Utilice los tipos de datos de valores grandes . WRITE de la instruccin UPDATE en su lugar.

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 opcin BULK

UPDATETEXT

WHERE

Especifica la condicin de bsqueda de las filas devueltas por la consulta.

Syntax[ WHERE ]Argumentos

Define las condiciones que deben cumplirse para las filas que se devuelven. No hay lmite para la nmero de predicados que se pueden incluir en una condicin de bsqueda. Para obtener ms informacin sobre las condiciones de bsqueda y predicados, vea Condiciones de bsqueda.

WHERE.

WITH common_table_expressionEspecifica un conjunto con nombre temporal resultado, conocido como una expresin de tabla comn (CTE). Es derivado de una consulta simple y se define en el mbito de ejecucin de un solo SELECT, INSERT, UPDATE o DELETE. Esta clusula tambin se puede utilizar en un CREATE VIEW declaracin como parte de su instruccin SELECT que define. Una expresin de tabla comn puede incluir referencias a ella misma. Esto se conoce como una expresin de tabla comn recursiva.

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

WITH common_table_expression

WRITETEXT

Permite el registro mnimo, la actualizacin 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 }