stored - tablas temporales sql server 2016
Insertar datos en una tabla temporal (12)
Después de haber creado una tabla temporal y declarar los tipos de datos como tal;
CREATE TABLE #TempTable(
ID int,
Date datetime,
Name char(20))
¿Cómo puedo luego insertar los datos relevantes que ya están almacenados en una tabla física dentro de la base de datos?
Después de crear la tabla temporal, simplemente haría un INSERT INTO () SELECT FROM
INSERT INTO #TempTable (id, Date, Name)
SELECT t.id, t.Date, t.Name
FROM yourTable t
El funcionamiento básico de la tabla temporal se proporciona a continuación, modifíquelo y utilícelo según sus requisitos,
- CREAR UNA TABLA TEMP.
CREATE TABLE #MyTempEmployeeTable(tempUserID varchar(MAX), tempUserName varchar(MAX) )
- INSERTAR VALOR EN UNA TABLA DE TEMP.
INSERT INTO #MyTempEmployeeTable(tempUserID,tempUserName) SELECT userid,username FROM users where userid =21
- CONSULTA UNA TABLA TEMP [Esto funcionará solo en la misma sesión / instancia, no en otra instancia de sesión de usuario]
SELECT * FROM #MyTempEmployeeTable
- ELIMINAR VALOR EN LA TABLA DE TEMP.
DELETE FROM #MyTempEmployeeTable
- CAÍDA UNA MESA TEMP.
DROP TABLE #MyTempEmployeeTable
He proporcionado dos enfoques para resolver el mismo problema,
Solución 1: este enfoque incluye 2 pasos, primero cree una tabla temporal con el tipo de datos especificado, luego inserte el valor de la tabla de datos existente.
CREATE TABLE #TempStudent(tempID int, tempName varchar(MAX) )
INSERT INTO #TempStudent(tempID, tempName) SELECT id, studName FROM students where id =1
SELECT * FROM #TempStudent
Solución 2: Este enfoque es simple, donde puede insertar directamente los valores en la tabla temporal, donde automáticamente el sistema se encarga de crear la tabla temporal con el mismo tipo de datos de la tabla original.
SELECT id, studName INTO #TempStudent FROM students where id =1
SELECT * FROM #TempStudent
La consulta correcta:
drop table #tmp_table
select new_acc_no, count(new_acc_no) as count1
into #tmp_table
from table
where unit_id = ''0007''
group by unit_id, new_acc_no
having count(new_acc_no) > 1
Mi forma de Insert
en SQL Server. También suelo verificar si existe una tabla temporal.
IF OBJECT_ID(''tempdb..#MyTable'') IS NOT NULL DROP Table #MyTable
SELECT b.Val as ''bVals''
INTO #MyTable
FROM OtherTable as b
Para insertar todos los datos de todas las columnas, solo usa esto:
SELECT * INTO #TempTable
FROM OriginalTable
No se olvide de DROP
la tabla temporal después de que haya terminado con ella y antes de intentar crearla de nuevo:
DROP TABLE #TempTable
INSERT INTO #TempTable (ID, Date, Name)
SELECT id, date, name
FROM physical_table
INSERT INTO #TempTable(ID, Date, Name)
SELECT OtherID, OtherDate, OtherName FROM PhysicalTable
SELECT ID , Date , Name into #temp from [TableName]
SELECT *
INTO #TempTable
FROM table
insert #temptable
select idfield, datefield, namefield from yourrealtable
insert into #temptable (col1, col2, col3)
select col1, col2, col3 from othertable
Tenga en cuenta que esto se considera una práctica deficiente:
insert into #temptable
select col1, col2, col3 from othertable
Si la definición de la tabla temporal cambiara, el código podría fallar en el tiempo de ejecución.