2
我的任务是将数据从MSSQL服务器迁移到MySQL服务器。我认为首先将MSSQL数据库转换为MS Access数据库会比较容易,所以我可以将其混淆,然后将其导出为MySQL。在MS Access中将自己的行映射到自己的行
所以,我有一个表,名为公司:
companyID | name | c_phon | c_email | c_address
1 StackOverflow 5555555555 [email protected] NYC
2 Google 5558675309 [email protected] NYC
在我们的新的数据库,我们更改了这些字段被保存。而不是每行都有电话号码,电子邮件和地址,我们正在使用一个优先表。
首选项:
prefID | prefName
1 c_phone
2 c_email
3 c_address
我的问题是,如何将我的每个字段转换成它自己排在我们companyPrefs表。它应该是这个样子:
companyID | prefID | prefValue
1 1 5555555555
1 2 [email protected]
1 3 NYC
2 1 5558675309
2 2 [email protected]
2 3 NYC
我不知道如何使用VBScript或什么的,所以我试图做到这一点使用SQL。
INSERT INTO comanyPrefs (companyID, prefID, prefValue)
SELECT companyID, prefID, @fieldName
FROM companies, preferences
WHERE @fieldName = prefName
显然,这是行不通的。我如何使用可变字段名称来选择字段?我如何为每个字段插入一行?
我希望我不会有手动每个字段名称添加到查询。我希望我可以动态地做到这一点。 –
那么你可以从VBA动态构建代码。例如,用一个字符串建立查询,并为每个字段名称,例如例如,'strQuery = strQuery&“SELECT companyID ... where prefName ='”&theFieldName&“',”&theFieldName&“FROM其中”&theFieldName&“不为空的公司。如果您的任何源列不是文本的,您也必须进行可能的转换。 – mellamokb
我不知道如何使用VB,我认为这会花费比我手动输入字段名称更长的时间:-P –