SQL Insert

Instrucció INSERT
Definició
Afegeix una nova fila o files a una taula o vista.

 INSERT [INTO] objecte {[(llista_columnes)] {VALUES (({DEFAULT | NULL | expressió} [, ... n]) [, ... n]) | tabla_derivada | sentencia_ejecutable | DEFAULT VALUES}}


Descripció de les clàusules

  • INTO: És una paraula clau opcional que es pot utilitzar entre INSERT i la taula de destinació.
  • Llista_columnes: És una llista d'una o més columnes en què s'inseriran les dades. S'ha d'incloure entre parèntesis i delimitar amb comes.
  • VALUES: Presenta la llista de valors de dades que es van a inserir. Hi ha d'haver un valor de dades per cada columna de la llista, si s'especifica, o a la taula. La llista de valors ha d'anar entre parèntesis. Els valors de la llista VALUES hauran d'estar en el mateix ordre que la llista de columnes. La inserció de més d'una fila de valors requereix que la llista VALUES estigui en el mateix ordre que les columnes de la taula, per tenir un valor en cada columna, o que llista especifiqui de forma explícita la columna en que la que s'emmagatzema cada un dels valors entrants. El nombre màxim de files que es poden inserir en una instrucció INSERT única és 1000. Per inserir més de 1000 files, creu diverses instruccions INSERT, o realitzi una importació massiva de dades mitjançant el programa BCP o la instrucció BULK INSERT.
  • Tabla_derivada: És qualsevol instrucció SELECT vàlida que retorni files amb les dades que es van a carregar a la taula.
  • Sentencia_ejecutable: És qualsevol instrucció EXECUTE vàlida que retorni dades amb la instruccions SELECT. Pot contenir la crida a un procediment emmagatzemat.
  • DEFAULT VALUES: Fa que la nova fila contingui els paràmetres per defecte definits per a cada columna.

Consideracions
Si una columna no s'inclou en la llista de columnes, el Motor de base de dades ha de ser capaç de proporcionar un valor basat en la definició de la columna, en cas contrari, no es pot carregar la fila. El Motor de base de dades proporciona automàticament un valor per la columna si aquesta:

  • Té una propietat IDENTITY. S'usa el valor d'identitat incremental següent.
  • Té un valor predeterminat. S'usa el valor predeterminat de la columna.
  • Té un tipus de dades timestamp. S'utilitza el valor actual de marca de temps.
  • Accepta valors NULL. S'usa un valor NULL.
  • És una columna calculada. S'utilitza el valor calculat.

Exemples
a. Insereix una fila a la taula UnitMeasure. Atès que els valors per a totes les columnes es subministren i inclouen en el mateix ordre que les columnes de la taula, no cal especificar els noms de columna a la llista. Igualment és una bona pràctica declarar la llista sempre.

 INSERT INTO Production.UnitMeasure VALUES ('F2', 'Square Feet', GETDATE ())

b. Mateix exemple que en l'opció a, però especificant la llista de columnes.

 INSERT INTO Production.UnitMeasure (Name, UnitMeasureCode, ModifiedDate) VALUES ('Square Yards', 'Y2', GETDATE ())

c. Insereix 5 files a la taula Departments

 INSERT INTO dbo.Departments VALUES (1, 'Human Resources', 'Margheim'), (2, 'Sales', 'Byham'), (3, 'Finance', 'Gill'), (4, 'Purchasing', 'Barber'), (5, 'Manufacturing', 'Brewer')

d. Insereix el resultat de la instrucció SELECT a la taula EmployeeSales

 INSERT dbo.EmployeeSales SELECT 'SELECT', e.EmployeeID, c.LastName, sp.SalesYTD FROM HumanResources.Employee AS i INNER JOIN Sales.SalesPerson AS sp ON e.EmployeeID = sp.SalesPersonID INNER JOIN Person.Contact AS c ON i . ContactID = c.ContactID WHERE e.EmployeeID LIKE '2% 'ORDER BY e.EmployeeID, c.LastName 

4 Responses to "SQL Insert"

  1. Informació Bitacoras.com ...

    Valora en Bitacoras.com: Instrucció INSERT Definició Afegeix una nova fila o files a una taula o vista. INSERT [INTO] objecte {[(llista_columnes)] {VALUES (({DEFAULT | NULL | expressió} [,? N]) [,? N]) | tabla_derivada | sentencia_eje .....

  2. cancuneitor diu:

    Em va sorgir un problema en crear una taula, i no tinc idea de com usar la comanda "DEFAULT VALUES" i ja intenti de tot el que he trobat en els cercadors i res de res.
    Jo tinc la meva taula amb un munt de validació però la que més m'interessa és la de Id que s'ha d'incrementar sola ús SQL Server 2005 i ja li intenteu amb posar-li única, d'auto increment i tota la resta però nadita de res que es acte s'incrementa, m'interessa que em treguis del meu dubte ia tots els que no pugui passar.

  3. vo diu:

    Busca alguna cosa del Identity, crec que et servirà molt

  4. Agustin diu:

    hola tinc un problema jo si fer els insert per què eh usat vb des de fa molt temps però ara maneig vb2010 i la veritat nose com es generi la coneccions etc etc etc m'agradaria que van publicar alguna cosa sobre això si us plau .. ayudenme vull fer alta baixes i canvis en sql2008

Comentar