Member 11856456 Ответов: 2

Можно ли построить оператор select insert into без использования значений@


Итак, в своем заявлении я имею:

Select first_name from [table1] insert into [table2] (ID, First_name) values (@ID, @first_name)


но если я использую код таким образом, я должен поместить значения в addwithvalue @ID и @first_name.

Все, что я хочу сделать, это скопировать информацию из одной таблицы в другую.

что я могу сделать, чтобы исправить это?

Что я уже пробовал:

Я использую параметры, но не уверен, что смогу сделать это с помощью такого типа операторов. Я пробовал datareader, но он дает только единичные значения, когда мне нужно скопировать все это и перенести в другую таблицу.

PIEBALDconsult

Это выглядит неправильно. Почему ты этого не делаешь:
Вставить в [таблица2] (идентификатор, "имя") выберите пункт "идентификатор", " имя " от [таблица1]

Member 11856456

Я поменяю заявление. Я попробую сделать это таким образом, я запускаю двойной оператор, потому что я получаю информацию из одной таблицы в другую базу данных и переношу ее для использования во вторичной базе данных

2 Ответов

Рейтинг:
0

RickZeeland

Да, можешь !

SELECT * INTO newtable [IN externaldb]
FROM oldtable
WHERE condition;


PIEBALDconsult

Это создает новую таблицу.

RickZeeland

Вы правы, возможно, это не то, чего он хочет !

Member 11856456

На данный момент я не возражаю против создания новой таблицы. Как бы вы использовали select into, если бы использовали 2 базы данных? Я не знаю, как использовать 2 строки подключения и сделать работу вместе в vb.net

RickZeeland

Если вы хотите использовать 2 базы данных, поместите цель в [In externaldb].
Я думаю, что вы можете использовать одну строку подключения для SQL Server, пока базы данных (каталоги) находятся на одном сервере, не указывайте "каталог".

Member 11856456

не могли бы вы привести пример, так как я раньше не имел дела с использованием 2 баз данных. Я ценю вашу помощь.

Member 11856456

вот фактический код, который я запускаю на основе вашего предложения:

Dim tabname как строка
tabname = InputBox ("имя вашей новой таблицы", "новая таблица","", 1, 1)

Dim sqlconn1 как новый SqlConnection(connect1)
Dim sqlconn2 как новый SqlConnection(connect2)

sqlconn1.Открыть()
sqlconn2.Открыть()

Дим СВ2 в качестве нового класса StringBuilder("выбрать * в" + ComboBox2.Текст + ".ДБО".+ "[" + tabname.Метод toString + "] [в externaldb] от " + элемент combobox1.Текст + ".ДБО".+ "[" + Список listbox1.Элемент.Метод toString + "]")

Dim sqladp = новый SqlDataAdapter

sqladp. SelectCommand = New SqlCommand(cb2. ToString, sqlconn1)

sqladp.Команды selectcommand.Метод executenonquery()

sqlconn1.Закрывать()
sqlconn2.Рядом()


Конец Подводной Лодки

решил, что это может помочь

RickZeeland

Я думаю, что пример запроса, который я упомянул, может быть использован только непосредственно в SQL Server, а не из VB.NET, проблема в том, что вы можете подключиться только к серверу, но вы не можете использовать две базы данных одновременно. Извините, если мой ответ вас смутил.
Например, можно подключиться к серверу, запросить доступные базы данных и перечислить их в выпадающем списке.

Member 11856456

Я не знаю, как запрашивать 2 базы данных одновременно, я привык делать только одну. есть ли где-нибудь пример или, может быть, быстрый пример, который вы можете привести, который мог бы помочь мне начать работу в правильном направлении? Не думал, что пытаться переместить табличную информацию из одной базы данных в другую будет так сложно.

RickZeeland

Боюсь, что невозможно использовать 2 базы данных одновременно. VB.NET.
Вы можете попробовать использовать хранимую процедуру, так SQL Server сможет получить доступ к большему количеству баз данных. Удачи !

Рейтинг:
0

Member 12536859

INSERT INTO [table2] (ID, First_name)
SELECT id, first_name FROM [table1]