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 –