我有两张桌子
我想要的是使用存储过程将别名设置为Proceso.tmpUnidadesPresupuestadas
(时态表)和Proceso.srcUnidadesPresupuestadas
,问题是我是新的使用存储过程我有类似的东西:
--Getting registers of table Proceso.tmpUnidadesPresupuestadas
SELECT
Uni.keyCliente, Uni.keyCentro, Uni.keyMaterial, Uni.Periodo, Uni.Mes,
Uni.UnidadesPresupuestadas, Uni.Plataforma, Uni.mdOrigenCarga,
Uni.mdUsuarioCarga, Uni.mdFechaCarga, Uni.bActivo
INTO
#tmpUnidadesPresupuestadas
FROM
Proceso.tmpUnidadesPresupuestadas Uni
--Insert in table Proceso.srcUnidadesPresupuestadas
INSERT INTO Proceso.srcUnidadesPresupuestadas (num1, num2, etc)
VALUES (#tmpUnidadesPresupuestadas.num1, #tmpUnidadesPresupuestadas.num2)
换句话说,我想使用别名来执行以下操作:
INSERT INTO Destino (num1, num2, etc)
VALUES (Origen.num1, Origen.num2)
此致
答案 0 :(得分:2)
我认为你对别名是什么感到困惑。别名用于为表或对象提供仅对该查询的范围有效的临时名称。您所描述的内容听起来更像是一个同义词,它是为持久性数据库对象提供替代的方法。
https://docs.microsoft.com/en-us/sql/relational-databases/synonyms/synonyms-database-engine
答案 1 :(得分:1)
如果要从另一个表中插入表,则需要使用INSERT INTO ..... SELECT .....
语法 - 例如:
--Insert in table Proceso.srcUnidadesPresupuestadas
INSERT INTO Proceso.srcUnidadesPresupuestadas (num1, num2, etc)
SELECT
num1, num2, etc
FROM
#tmpUnidadesPresupuestadas
如果您拥有所有值作为文字,过程参数或SQL Server变量(INSERT INTO ... VALUES ....
等),则@num1
语法只能 。但是如果你想从另一个表中选择值,不是