Записать результат / запись SQL напрямую в другую базу данных?
У меня есть следующий скрипт, который успешно читает записи из базы данных:
sDSN = MyDSN
sUsername = username
sPassword = password
sSQL ="Select TOP 1 * myTable"
sDSN = "DSN=" & sDSN & ";UID=" & sUsername & ";PWD=" & sPassword & ";"
Set sConnect = CreateObject("ADODB.Connection")
WScript.Echo "Opening connection to source..."
sConnect.Open sDSN
Set resultSet = sConnect.Execute(sSQL)
On Error Resume Next
resultSet.MoveFirst
Do While Not resultSet.eof
WScript.Echo resultSet("ID") & "," & resultSet("SomeColumn") & "," & resultSet("SomeOtherColumn")
resultSet.MoveNext
Loop
resultSet.Close
sConnect.Close
Set sConnect = Nothing
Это прекрасно работает и выдает что-то вроде следующего:
1, значение, значение2
Итак, что я хочу сделать, это записать это обратно в другую базу данных. Я понимаю, что мог бы вручную написать запрос, который определяет каждый столбец, но мне интересно, есть ли способ просто вставить resultset()
в одной легкой команде.
Кто-нибудь знает возможно ли это? Это CACHÉ, потому что кто-то всегда спрашивает:)
2 ответа
Если ни у кого нет лучшего ответа, это работает довольно хорошо и может быть повторно использовано независимо от таблицы
tSQL = "INSERT INTO targetTable VALUES ("
For i = 0 To resultSet.fields.Count
tSQL = tSQL & resultSet(i)
if i <> resultSet.fields.Count Then
tSQL = tSQL & ","
end if
Next
tSQL = tSQL & ")"
В VBScript нет простого пути. Я не уверен, что CACHE или делает, так что это не учитывает мой ответ.
Что вам нужно сделать, это построить текст для запроса вставки в каждом цикле набора результатов.
dim InsertSQL = "insert into MyNewTable values (" & resultSet("ID") & "," & resultSet("SomeColumn") & ")"