Sql 如何将临时表添加到另一个具有额外列的临时表

Sql 如何将临时表添加到另一个具有额外列的临时表,sql,sql-server,dynamic-sql,Sql,Sql Server,Dynamic Sql,我希望将数据从#EmPcodes temp表获取到#pArrangeAllcode 但它有一个额外的列,我以后会用到它。。。我总是会遇到这样的错误: CREATE TABLE #EmpPcodes ( YearMonth INT, YEAR INT, MONTH INT, RunNo INT, Amount NUMERIC(18, 3), GroupCode

我希望将数据从#EmPcodes temp表获取到#pArrangeAllcode 但它有一个额外的列,我以后会用到它。。。我总是会遇到这样的错误:

CREATE TABLE #EmpPcodes
(
   YearMonth        INT,
   YEAR             INT,
   MONTH            INT,
   RunNo            INT,
   Amount           NUMERIC(18, 3),
   GroupCode        NvarCHAR(30),
   GroupName        NvarCHAR(250),
   GroupAName       NvarCHAR(250),
   PayrollGroup     INT,
   EmployeeId       INT
)    
CREATE TABLE #pArrangeAllcode
(
   YearMonth        INT,
   YEAR             INT,
   MONTH            INT,
   RunNo            INT,
   Amount           NUMERIC(18, 3),
   GroupCode        NvarCHAR(30),
   GroupName        NvarCHAR(250),
   GroupAName       NvarCHAR(250),
   PayrollGroup     INT,
   EmployeeId       INT,
   CodeArrange      INT
)

INSERT INTO #pArrangeAllcode 
SELECT YearMonth, YEAR, MONTH, RunNo, Amount, GroupCode, GroupName, 
GroupAName, PayrollGroup, EmployeeId,
FROM dbo.#EmpPcodes 

SELECT * FROM #pArrangeAllcode

有什么帮助吗?

使用下面的查询插入记录

Insert Error: Column name or number of supplied values does not match table definition.

使用下面的查询插入记录

Insert Error: Column name or number of supplied values does not match table definition.

实际上,insert语句中缺少一列,这也需要一些值:

使用以下命令:

INSERT INTO #pArrangeAllcode 
SELECT YearMonth, YEAR, MONTH, RunNo, Amount, GroupCode, GroupName, 
GroupAName, PayrollGroup, EmployeeId,NULL
FROM dbo.#EmpPcodes 

实际上,insert语句中缺少一列,这也需要一些值:

使用以下命令:

INSERT INTO #pArrangeAllcode 
SELECT YearMonth, YEAR, MONTH, RunNo, Amount, GroupCode, GroupName, 
GroupAName, PayrollGroup, EmployeeId,NULL
FROM dbo.#EmpPcodes 

CodeArrange
#pArrangeAllcode
表中存在的额外列。由于它是
notnull
column,因此可以跳过insert块中的特定列名,并在insert语句中明确提及列名

INSERT INTO #pArrangeAllcode 
SELECT YearMonth, YEAR, MONTH, RunNo, Amount, GroupCode, GroupName, 
GroupAName, PayrollGroup, EmployeeId,NULL
FROM dbo.#EmpPcodes
或者,如果要在
codearange
列中存储一些伪值,则传递
NULL

INSERT INTO #pArrangeAllcode (YearMonth, YEAR, MONTH, RunNo, Amount, GroupCode, GroupName, GroupAName, PayrollGroup, EmployeeId)
SELECT YearMonth, YEAR, MONTH, RunNo, Amount, GroupCode, GroupName, GroupAName, PayrollGroup, EmployeeId
FROM #EmpPcodes 

CodeArrange
#pArrangeAllcode
表中存在的额外列。由于它是
notnull
column,因此可以跳过insert块中的特定列名,并在insert语句中明确提及列名

INSERT INTO #pArrangeAllcode 
SELECT YearMonth, YEAR, MONTH, RunNo, Amount, GroupCode, GroupName, 
GroupAName, PayrollGroup, EmployeeId,NULL
FROM dbo.#EmpPcodes
或者,如果要在
codearange
列中存储一些伪值,则传递
NULL

INSERT INTO #pArrangeAllcode (YearMonth, YEAR, MONTH, RunNo, Amount, GroupCode, GroupName, GroupAName, PayrollGroup, EmployeeId)
SELECT YearMonth, YEAR, MONTH, RunNo, Amount, GroupCode, GroupName, GroupAName, PayrollGroup, EmployeeId
FROM #EmpPcodes 

简单规则:在使用
insert
时,请始终列出所有列。因此,我必须在insert中插入CodeArrange中的值!问题是我有一个来自#EmpCodes的update语句来将它们添加到新的临时表中#pArrangeAllcodeTag所使用的dbms。简单规则:在使用
insert
时,始终列出所有列。因此我必须在insert中插入CodeArrange中的值!问题是我有一个来自#EmpCodes的update语句,将它们添加到新的temp表#pArrangeAllcodeTag中,以标记所使用的dbms。