INSERT INTO SELECT * FROM,同时将数据类型转换为外键

时间:2016-09-23 14:11:23

标签: sql sql-server database

我目前在一家为发电机提供服务的公司工作,我们最近收到了大约6000件新设备的大量清单,我被要求查看是否可以编写脚本将数据导入我们的网站应用程序的数据库,但我仍然是IT的编码方面的新手。

我目前的解决方案是使用INSERT INTO查询将数据拉入生产数据库,但我的目标是尽可能使用此友好的脚本,这样即使我碰巧转移到其他地方也可以使用它。

话虽如此,我的问题是如何编写查询以将“资产类型”字段(即生成器,ATS)转换为与该类型相关联的外键(1001,1002),然后将其插入数据库?这是可能的,还是我们必须在运行脚本之前将设备转换为fks?

我确实看到了一个关于改变数据的类似问题,但除非我只是误解答案,否则这似乎不是我想要的。

2 个答案:

答案 0 :(得分:2)

我建议在使用临时表时,如JohnHC所建议的,但也使用SSIS包,然后他们可以在将来创建一个csv文件,将其放入特定文件夹,然后检查每15分钟(或任何你选择的)文件将在它找到具有该文件夹中特定名称和格式的任何内容时运行该包。这样做甚至不需要查看代码,只需要填充CSV文件。

答案 1 :(得分:0)

使用临时表......

create table Stage1 (AssetId INT identity(1000,1) primary key, AssetInfo varchar(20), OtherFields...);

insert into Stage1 (AssetInfo, OtherFields)
select distinct AssetInfo, OtherFields
from ExistingAssetTable
;

然后您可以使用现在生成的密钥来填充您的其他表