Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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)
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
FROM (Transact-SQL)
Hints (Transact-SQL)
TOP (Transact-SQL)
WHERE (Transact-SQL)
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)
Native
widechar
widenative
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
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
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.
DATA TYPES.
Data type
Default operation
Char
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.
On
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
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
[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.
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.
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
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
Control de errores
Comportamiento
Seguridad
Sintaxis bsica
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.
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 }