我会非常感谢任何可以帮助我的人。我试图从旧的平面文件DB中获取大量数据(因为关闭并且无法访问)到SQL中。我现在拥有的是一个excel文件,用于链接和分组数据。至少我有足够的知道把它放在哪里。
我能够将此语句用作测试,并且工作正常:
INSERT INTO Crm.Qualifier
VALUES ('40690225-5FB3-455C-9D13-0C88C02265A2', 'OldSales', 'UNV 880 880 GRAINCART-COUNTS $22,900' + CHAR(13)+CHAR(10) + 'UNV 990 990 GRAINCART-COUNTS $28,500');
使用数据在webapp中为最终用户生成此输出:
这对于一个条目很好,但我有超过18,000个条目,我找不到系统的方法来使用我拥有的数据或使用excel函数为我编写语句。
目标是每个GUID都有一个插入语句,所有文本都插入了换行符。
这是按帐户GUID分组的数据示例:
答案 0 :(得分:0)
您可以编写一个脚本来读取所有Excel数据,然后将此数据插入数据库。
要阅读excel,您可以使用this(如果您使用PHP编写脚本)。
答案 1 :(得分:0)
以下是应该帮助您以您希望导入的格式导入数据的代码段。
Create TABLE #TMP_DATA_LOAD (ACCOUNT VARCHAR(100),DATA VARCHAR(500));
--you can generate insert statement by using text editor with your data file
--sample insert statements are as below
Insert Into #TMP_DATA_LOAD Values('40690225-5FB3-455C-9D13-0C88C02265A2','UNV 880 880 GRAINCART-COUNTS $22,900');
Insert Into #TMP_DATA_LOAD Values('40690225-5FB3-455C-9D13-0C88C02265A2','UNV 990 990 GRAINCART-COUNTS $28,500');
--umcomment below line once you are sure this is what you want in final table
--Insert into Crm.Qualifier
Select DISTINCT ACCOUNT, 'OldSales' as Comments,
REPLACE( STUFF((Select '|'+ TDL1.DATA From #TMP_DATA_LOAD TDL1
WHERE TDL1.ACCOUNT=TDL.ACCOUNT FOR Xml Path('')),1,1,''),'|',CHAR(13)+CHAR(10)) DATA
FROM #TMP_DATA_LOAD TDL
Drop Table #TMP_DATA_LOAD
我希望这能回答你的问题。
注意:我正在使用SQL Server 2008 R2数据库作为我的脚本。如果您使用其他数据库,脚本可能会更改。