Insertar Registros

Insert en SQL Server

Para insertar registros en una tabla se utiliza la instrucción Insert.
Se pueden agregar registros también utilizando una consulta como origen de los datos.
Insert permite agregar uno a o mas registros a la vez.

Instrucción: Insert

Permite insertar registros en una tabla.

Sintaxis
Insert [into] NombreTabla [ ( Lista de columnas ) ]
VALUES ( DEFAULT | NULL | expression } [ ,…n] ) | Select….)

Donde

IntoPalabra clave inicial para indicar a que tabla se insertarán los registros.
NombreTablaNombre de la tabla a insertar los registros.
ValuesPalabra reservada para especificar los valores de cada campo en la lista de columnas.

Notas importantes:

  • La columna que tiene activada la propiedad Identity no se espacifica en la lista de campos a insertar.
  • En lo posible se debe evitar los datos Null, los que ocurren cuando en una campo no se escribe el dato a ingresar.
  • Si no se especifican los campos a insertar los datos, SQL Server supone que se van a insertar todos los campos de la tabla.
  • Si la tabla tienen campos calculados, estos no se ingresan al usar Insert.
  • Es recomendable usar restricciones de tipo Default para evitar en las tablas los valores Null.
  • Los campos que deben de ser obligatorios al insertar un registro se deben crear usando la cláusula Not Null.

Ejercicios

Usando Northwind

use Northwind
go

1. Insertar un registro en Customers. En este ejercicio se insertará los datos de todos los campos.

insert into Customers
(CustomerID, CompanyName, ContactName, ContactTitle, Address,
City, Region, PostalCode, Country, Phone, Fax)
values
(‘IRLUP’,’Iris Lupulo Luna Park’,’Ingrid Huamán’,’Manager’,’Av. El Sol 456′,
‘Madrid’,’SP’,’05432-043′,’España’,'(91) 555 93 46′,'(91) 666 44 92′)
go

2. Los campos pueden escribirse en cualquier orden.

insert into Customers
(CustomerID, CompanyName, PostalCode, Country, Phone, Fax,
ContactName, ContactTitle, Address, City, Region )
values
(‘ARAMT’,’Aracnis Management Co.’,’05432-043′,’España’,'(91) 555 93 46′,'(91) 666 44 92′,
‘Esmeralda Vics’,’Sales Manager’,’Av. Los Algarrobos 4678′, ‘Barcelona’,’SP’)
go
— Importante: si se escriben los datos de todos los campos, se puede obviar la lista de estos.

3. Insertar dos nuevas regiones, la tabla Region solamente tiene los campos RegionID de tipo Int y RegionDescripcion de tipo nchar(50)

insert into Region values (6,’Antártida’),(7, ‘Bosques Albinos’)
go

4. Crear una tabla con los productos descontinuados y luego insertar los registros.

Los productos descontinuados son:

Select * from Products where Discontinued = 1
go

— Creamos la tabla

Create table ProductosDescontinuados
(
Codigo nchar(10), Descripcion nvarchar(100),
Precio Numeric(9,2), Stock Numeric(8,2), Unidad nvarchar(50)
)
go

— Insertar los registros, usaremos un select con la misma cantidad de campos.

insert into ProductosDescontinuados
Select ProductID, ProductName, UnitPrice, UnitsInStock, QuantityPerUnit
from Products where Discontinued = 1
go

— Para visualizar los registros.

select * from ProductosDescontinuados
go
— Importante: note que el tipo de datos en la tabla ProductosDescontinuados para el campo Código es nchar(10) y la tabla Products originalmente el tipo es Int.

5. Una tabla con campos calculados. Crearemos una tabla con campos calculados, luego insertar registros.

Create table Promedios
( PromediosCodigo nchar(4),
PromedioPrimerValor Numeric(4,2),
PromedioSegundoValor Numeric(4,2),
PromedioTercerValor Numeric(4,2),
PromediosResultado As (PromedioPrimerValor + PromedioSegundoValor + PromedioTercerValor)/3
)
go

— Insertar registros
insert into Promedios values (‘8588’,12,16,14)
go

— Insertar varios al mismo tiempo
insert into Promedios values (‘6789’,13,10,17),(‘9984’,3,12,18),(‘5737’,18,10,7)
go
— Al listar los registros puede verse el campo de Resultado calculado automáticamente.
select * from Promedios
go

Note en la imagen el campo PromediosResultado