Sei sulla pagina 1di 58

Universidad Veracruzana

SISTEMAS COMPUTACIONALES ADMINISTRATIVOS


Bases de Datos

SQL SERVER 2012 TRANSACT-SQL DML REFERENCE .


Integrantes:
Badillo Len Jos Alberto
Gerardo Garca Ochoa
Daniel Garca Uscanga
Osmar Zaragoza Martnez
Fernndez 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.

CONTENIDO
Lenguaje de manipulacin de datos (DML)
GRANEL
DELETE
FROM
Sugerencias de combinacin, consulta y de tabla
INSERT
MERGE
OPCIN Clusula, SALIDA Clusula
READTEXT
Condiciones de bsqueda
SELECT
Clusula SELECT, Ejemplos SELECT
Clusula FOR
GROUP BY
HAVING
Clusula INTO
La clusula ORDER BY
SOBRE Clusula
Tabla Constructor Valor
TOP
ACTUALIZACIN
UPDATETEXT
WHERE
CON common table expression
WRITETEXT
Transact-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.
SELECT (Transact-SQL)

BULK INSERT (Transact-SQL)

DELETE (Transact-SQL)

UPDATE (Transact-SQL)

INSERT (Transact-SQL)

UPDATETEXT (Transact-SQL)

MERGE (Transact-SQL)

WRITETEXT (Transact-SQL)

READTEXT (Transact-SQL)


En la tabla siguiente se enumeran las
clusulas que se utilizan en varias
sentencias DML o clusulas.
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-

DELETE, INSERT, MERGE, SELECT,

SQL)

UPDATE

BULK INSERT
Importa 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' ])]

ARGUMENTOS

database_name
Es 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_name
Es 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_name
Es 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_size
Especifica el nmero de filas de un lote.

CHECK_CONSTRAINTS
Especifica que todas las restricciones de la tabla o
vista de destino deben comprobarse durante la
operacin de importacin masiva.
DATAFILETYPE value
char (default)

All data represented in:


Carcter de formato.
Para obtener ms informacin, consulte Uso de caracteres

Native

Formato para importar o exportar datos.


Nativos (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.

widechar

Formato para importar o exportar datos.


Caracteres Unicode.
Para obtener ms informacin, consulte Uso de Unicode.

widenative

Carcter de formato para importar o exportar datos.


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
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 datos
SQLCHAR o VARCHAR de SQL

Efecto
Los 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.
Los datos se envan como Unicode. El

SQLNCHAR o SQLNVARCHAR

SQLBINARY o SQLVARYBIN

efecto es el equivale a especificar la


DATAFILETYPE = 'widechar "sin
especificar un archivo de formato.
Los datos se envan sin ninguna
conversin.

EJEMPLOS
Utilizar 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,
ROWLOCK, TABLOCK, o TABLOCKX.
Isolation level hints: HOLDLOCK,
REPEATABLEREAD, SERIALIZABLE.

READCOMMITTEDLOCK,

NOLOCK,

READCOMMITTED,

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 <common_table_expression>
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_name
Es el nombre de la base de datos.

schema_name

Es el nombre del esquema al que pertenece la tabla o vista pertenece.

table_orview_name
Es 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_limited
Es 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 (<table_hint_limited> [... n])


Especifica una o ms sugerencias de tabla permitidas para una tabla de
destino. La palabra clave WITH y los parntesis son necesarios.
WHERE <search_condition>
Hay alguna clusula WHERE que contiene una <search_condition> vlido
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 bsqueda.
FIRE_TRIGGERS
Especifica 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 <target_table>
<columnas> <source_table> 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 type

Default operation

Char

Valor con espacios para el ancho definido de


columna.
Eliminar espacios finales hasta el ltimo noespacio personaje o a un carcter de un solo
espacio para cadenas compuestas solamente
de espacios.
Elimina los ceros finales.

Varchar

Varbinary

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 <search_condition> 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 <merge_matched>, y ms
de una fila de <table_source> coincide con una fila de target_table
basado en <merge_search_condition>, 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.

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 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;
GO
CREATE TABLE dbo.table1
(
id INT,
employee VARCHAR(32)
)
go
INSERT INTO dbo.table1 VALUES
(1, 'Fred')
,(2, 'Tom')
,(3, 'Sally')
,(4, 'Alice');
GO
DECLARE @MyTableVar TABLE
(
id INT,
employee VARCHAR(32)
);
PRINT 'table1, before delete'
SELECT * FROM dbo.table1;
DELETE FROM dbo.table1
OUTPUT DELETED.* INTO @MyTableVar
WHERE 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

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

LEA EL TEXTO
Leer 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
Importante
Esta 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.

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

Argumentos

table.column
Es 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_ptr
Es un puntero de texto vlido. text_ptr debe ser binario (16).
offset
Es 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.
Tamao
Es 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.

Select

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

Los pasos siguientes muestran el orden de


procesamiento lgico, 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

Group By
Agrupa 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 BY
GROUPING 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.

HAVING
Especifica una condicin de bsqueda para un grupo o
un agregado. HAVING slo se puede utilizar con la
La sentencia SELECT. HAVING se suele utilizar en una
clusula GROUP BY. Cuando GROUP BY no es
utilizado, HAVING se comporta como una clusula
WHERE.
El texto, imagen, y tipos de datos ntext no se puede
utilizar en una clusula HAVING
Syntax
[ HAVING <search condition> ]

CLUSULA INTO
SELECT ... 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_TABLE
Especifica 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. cada
columna en new_table tiene el mismo nombre, tipo de
datos nulabilidad y valor como el
expresin correspondiente en la lista de seleccin.

LA CLUSULA ORDER BY
Ordena 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 filas
devuelto a un rango especificado. El orden en el que
las filas se devuelven en un conjunto de resultados no
son
garantizada 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 sintaxis

SINTAXIS
ORDER BY order_by_expression
[COLLATE]
[ASC
Argumentos
| 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
]
}

OVER CLUSULA
Determina la particin y el ordenamiento de un conjunto
de filas antes de la funcin de ventana asociado es
aplicado. Es decir, la clusula OVER define una ventana
o especificado por el usuario conjunto de filas dentro de
una consulta
Conjunto de resultados. Una funcin de ventana se
calcula un valor para cada fila de la ventana. Usted
puede utilizar el
Clusula OVER con funciones para calcular valores
agregados tales como medias mviles, acumulativos
agregados, totales acumulados, o un grupo de los
mejores resultados por Numero Se aplica a:
Funciones de Clasificacin
Las funciones de agregado
Funciones analticas

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 instruccin DML nico. la
constructor tabla de valores se puede especificar en la
clusula VALUES de la instruccin INSERT, en la
USO clusula <source tabla> de la instruccin
MERGE, y en la definicin de una tabla derivada en
la clusula FROM.

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

TOP
Limita las filas devueltas en un resultado de consulta
establecido en un nmero especificado de filas o
porcentaje de filas
en SQL Server 2012. Cuando TOP se utiliza en
conjuncin con la clusula ORDER BY, el conjunto de
resultados
se limita a la primera nmero N de filas ordenadas, de
lo contrario, se devuelve el primer nmero N de azar
filas. Utilice esta clusula para especificar el nmero
de filas de regresar de una instruccin SELECT o
afectada 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 Columnas
Para 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


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
conversin implcita o explcita de ese tipo.
ACTUALIZACIN Ciudades
SET Ubicacin = CONVERT (Point, .3:46.2 '12 ')
WHERE Nombre = 'Anchorage';

Control de errores

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

Comportamiento

Bloqueo 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 datos

Seguridad

Permisos 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();

UPDATETEXT
Actualiza 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.

UPDATETEXT
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

WHERE
Especifica la condicin de bsqueda de las filas devueltas
por la consulta.
Syntax
[ WHERE <search_condition> ]
Argumentos
<search_condition>

W
WH
H ER
ER E.
E.

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.

WITH common_table_expression
Especifica 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 <common_table_expression> [ ,...n ] ]
<common_table_expression>::=
expression_name [ (column_name [ ,...n ] ) ]
AS
(CTE_query_definition)

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 }

Potrebbero piacerti anche