1. Universidad Veracruzana
SISTEMAS COMPUTACIONALES ADMINISTRATIVOS
Bases de Datos
.
Integrantes:
Badillo León José Alberto
Gerardo García Ochoa
Daniel García Uscanga
Osmar Zaragoza Martínez
Fernández Hernández José Luis
2. 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.
3. 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
4. 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.
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)
5. En la tabla siguiente se enumeran las
cláusulas que se utilizan en varias
sentencias DML o cláusulas.
Clause Can be used in these statements
FROM (Transact-SQL) DELETE, SELECT, UPDATE
Hints (Transact-SQL) DELETE, INSERT, SELECT, UPDATE
OPTION Clause (Transact-SQL) DELETE, SELECT, UPDATE
OUTPUT Clause (Transact-SQL) DELETE, INSERT, MERGE, UPDATE
Search Condition (Transact-SQL) DELETE, MERGE, SELECT, UPDATE
Table Value Constructor (Transact-SQL) FROM, INSERT, MERGE
TOP (Transact-SQL) DELETE, INSERT, MERGE, SELECT, UPDATE
WHERE (Transact-SQL) DELETE, SELECT, UPDATE
WITH common table expression (Transact- DELETE, INSERT, MERGE, SELECT,
SQL) UPDATE
6. BULK INSERT
Importa un archivo de datos en una tabla o vista de
base de datos en un formato especificado por el
usuario.
8. 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
operación de importación masiva es el esquema de
la tabla o ver.
9. table_name
Es 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_size
Especifica el número de filas de un lote.
10. CHECK_CONSTRAINTS
Especifica 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 caracteres
Formato 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.
11. 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.
12. 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 Efecto
SQLCHAR 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.
Los datos se envían como Unicode. El
efecto es el equivale a especificar la
SQLNCHAR o SQLNVARCHAR DATAFILETYPE = 'widechar "sin
especificar un archivo de formato.
Los datos se envían sin ninguna
SQLBINARY o SQLVARYBIN
conversión.
13. EJEMPLOS
Utilizar 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')
14. 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.
15. 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.
16. 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.
17. 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_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 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_limited
Es 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.
18. 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_TRIGGERS
Especifica 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.
19. 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.
20. 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.
21. MERGE
Realiza 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.
22. 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.
23. 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.
24. • 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.
25. USE tempdb; PRINT '@MyTableVar, after delete'
GO SELECT * FROM @MyTableVar;
CREATE TABLE dbo.table1 DROP TABLE dbo.table1;
( --Results
id INT, --table1, before delete
employee VARCHAR(32) --id employee
) ------------- ------------------------------
go --1 Fred
INSERT INTO dbo.table1 VALUES --2 Tom
(1, 'Fred') --3 Sally
,(2, 'Tom') --4 Alice
,(3, 'Sally') --
,(4, 'Alice'); --table1, after delete
GO --id employee
DECLARE @MyTableVar TABLE ------------- ------------------------------
( --1 Fred
id INT, --3 Sally
employee VARCHAR(32) --@MyTableVar, after delete
); --id employee
PRINT 'table1, before delete' ------------- ------------------------------
SELECT * FROM dbo.table1; --2 Tom
DELETE FROM dbo.table1 --4 Alice
OUTPUT DELETED.* INTO @MyTableVar
WHERE id = 4 OR id = 2;
PRINT 'table1, after delete'
SELECT * FROM dbo.table1;
26. • 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.
27. • 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.
28. • 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.
29. • 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 número de
bytes especificado
• Importante
Esta 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.
30. • 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. 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_ptr
Es un puntero de texto válido. text_ptr debe ser binario (16).
• offset
Es 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ño
Es 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.
31. 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.
32. 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
33. Group By
Agrupa 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.
34. 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)
35. • 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 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 están permitidos en un cláusula GROUP BY con palabras
claves ROLLUP, CUBE o GROUPING SETS.
36. HAVING
Especifica una condición de búsqueda para un grupo o
un agregado. HAVING sólo se puede utilizar con la
La sentencia SELECT. HAVING se suele utilizar en una
cláusula GROUP BY. Cuando GROUP BY no es
utilizado, 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> ]
37. CLÁUSULA 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 ]
38. NEW_TABLE
Especifica 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. cada
columna en new_table tiene el mismo nombre, tipo de
datos nulabilidad y valor como el
expresión correspondiente en la lista de selección.
39. LA CLÁUSULA ORDER BY
Ordena 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 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 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
41. OVER CLÁUSULA
Determina la partición y el ordenamiento de un
conjunto de filas antes de la función de ventana
asociado es
aplicado. Es decir, la cláusula OVER define una ventana
o especificado por el usuario conjunto de filas dentro de
una consulta
Conjunto de resultados. Una función de ventana se
calcula un valor para cada fila de la ventana. Usted
puede utilizar el
Cláusula OVER con funciones para calcular valores
agregados tales como medias móviles, acumulativos
agregados, 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
42. 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. la
constructor tabla de valores se puede especificar en la
cláusula VALUES de la instrucción INSERT, en la
USO cláusula <source tabla> de la instrucción MERGE, y
en la definición de una tabla derivada en
la cláusula FROM.
43. SYNTAX
VALUES ( <row value expression list>) [ ,...n ]
<row value expression list> ::=
{<row value expression> } [ ,...n ]
<row value expression> ::=
{ DEFAULT | NULL | expression }
44. 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 azar
filas. Utilice esta cláusula para especificar el número de
filas de regresar de una instrucción SELECT o
afectada por una instrucción INSERT, UPDATE, MERGE o
DELETE.
46. 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).
47. • 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 Ciudades
SET Ubicación = CONVERT (Point, .3:46.2 '12 ')
WHERE Nombre = 'Anchorage';
48. Control de errores
Si 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.
49. 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
50. Seguridad
Permisos 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.
51. 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();
52. Actualiza 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.
53. 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
54. Especifica la condición de búsqueda de las filas devueltas
por la consulta.
Syntax
[ WHERE <search_condition> ]
Argumentos
<search_condition>
55. 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.
56. 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.
58. 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 }