[英]SQL Server : copy data from columns to another table with many columns
我有一个现有表,用于存储从另一台服务器获取的数据。
现在,我想将该数据复制到一个表中,这将是我可以进行CRUD操作的最终表。
拳表(参考数据库)还原到我的TempTable-确定
INSERT INTO [PFTracking].[dbo].[TempTable]
SELECT
c.[pf_id]
,a.[RequestDate]
,c.[pf_carrierUsed]
,b.[PiecePrice] * b.[PartQuantity] as [Amount]
,c.[pf_type]
,c.[pf_resSupplier]
,c.[pf_resCustomer]
,c.[pf_trailerNum]
,b.[PartDesc]
,c.[pf_chargeBack]
,c.[pf_chargetoPlant]
FROM
[CNCTC-WEB01].[NOP_PR].[dbo].[Requests] a
JOIN
[CNCTC-WEB01].[NOP_PR].[dbo].[Parts] b on a.[RequestID] = b.[RequestID]
JOIN
[PHRIZ-WEBAPP01].[PFTracking].[dbo].[Tbl_PFExcel] c ON b.[PartNumber] LIKE '%' + c.pf_id + '%'
WHERE
a.[EntityName] LIKE '%PTA'
AND a.[RequestDate] BETWEEN '2015-04-20 00:00:00.000' AND GETDATE()
现在..因为我的TempTable
包含以下列:
[PTAID]
,[RequestDate]
,[ProvName]
,[Amount]
,[INorOUT]
,[Supplier]
,[Customer]
,[Program]
,[IssueDesc]
,[Chargeable]
,[Company]
我试图做这个命令:
INSERT INTO [PFTracking].[dbo].[UserInput]
SELECT
[PTAID]
,[RequestDate]
,[ProvName]
,[Amount]
,[INorOUT]
,[Supplier]
,[Customer]
,[Program]
,[IssueDesc]
,[Chargeable]
,[Company]
FROM [PFTracking].[dbo].[TempTable]
还有这个 :
INSERT INTO [PFTracking].[dbo].[UserInput]
SELECT *
FROM [PFTracking].[dbo].[TempTable]
但是我得到的只是这个错误:
Msg 213,第16级,状态1,第3行
插入错误:列名或提供的值数与表定义不匹配。
知道如何解决我的问题吗?
作为最佳实践,您应该将insert语句编写为:
Insert into [PFTracking].[dbo].[UserInput](Col1,Col2,...)
-- list the names of columns explicitly in which data is to be inserted
SELECT
[PTAID]
,[RequestDate]
,[ProvName]
,[Amount]
,[INorOUT]
,[Supplier]
,[Customer]
,[Program]
,[IssueDesc]
,[Chargeable]
,[Company]
FROM [PFTracking].[dbo].[TempTable]
您可以省略从“ Identity
属性”,“ Default
约束或允许Nulls
时自动获取其值的列名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.