Записать результат / запись 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") & ")"
Другие вопросы по тегам