mayank1290 Ответов: 3

как скопировать данные из таблицы одной базы данных в другую таблицу той же базы данных в sql server 2005


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

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

3 Ответов

Рейтинг:
23

Karthik Harve

Привет,

попробуй вот так,,

SELECT * INTO Table2 FROM Table1 WHERE Date = GETDATE()

обратитесь к этому для получения дополнительной информации
http://blog.sqlauthority.com/2007/08/15/sql-server-insert-data-from-one-table-to-another-table-insert-into-select-select-into-table/[^]

надеюсь, это сработает.


mayank1290

прежде всего спасибо за ответ ....
но я хочу перенести данные в таблицу другой базы данных.другая база данных также существует в том же проекте ...

Команда sqlcommand cmd и = новая команда sqlcommand("вставить в DB2.студент МДФ..(имя, адрес,дата)Select имя, адрес,дату из базы данных db1.студент МДФ..", кон);
против.Открыть();
УМК.Метод executenonquery();
против.Закрывать();
но это дает ошибку--
Не удалось найти сервер " Db1 " в sys.servers. Убедитесь, что указано правильное имя сервера. При необходимости выполните хранимую процедуру sp_addlinkedserver, чтобы добавить сервер в sys. servers.

так что, пожалуйста, дайте мне решение..

Karthik Harve

находятся ли эти две базы данных на одном сервере?..?
если да, попробуйте вот так..

Выберите * в Db1.dbo. Table2 из Db2.dbo. Table1, где [условие]

если нет, то я думаю, что вы не можете выполнить один запрос с одним соединением

mayank1290

@Картик
у меня есть использование, но оно дает ошибку-недопустимое имя объекта "Db1.dbo.student".

мой код таков--
использование системы;
использование системы.Конфигурация;
используя системы.Сведения;
использование System. Linq;
использование системы.Сеть;
используя системы.Веб.Безопасности;
используя системы.Веб.ИП;
используя системы.Веб.Пользовательского интерфейса.HtmlControls;
используя системы.Веб.Пользовательского интерфейса.WebControls;
используя системы.Веб.Пользовательского интерфейса.WebControls.элемент webPart;
используя системы.В формате XML.В LINQ;
используя системы.Данных.Поставщики sqlclient;
используя системы.Веб.Конфигурации;
общественный разделяемого класса _default : на системы.Веб.Пользовательского интерфейса.Страницы
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings ["Порядок"].Параметр connectionString);

protected void Page_Load(отправитель объекта, EventArgs e)
{

}
охраняемых недействительными обработчика button1_click(объект отправителя, EventArgs в электронной)
{
SqlCommand cmd = new SqlCommand ("SELECT * INTO Db2.dbo. student FROM Db1.dbo. student", con);
против.Открыть();
УМК.Метод executenonquery();
против.Закрывать();


}
}

Karthik Harve

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

mayank1290

@karthik у меня есть две базы данных: одна-Db1, другая-Db2.
я хочу, чтобы скопировать данные из Бд1 студента таблицы студента в DB2 в таблице на событие нажатия кнопки....


поэтому, пожалуйста, дайте мне решение...

Karthik Harve

попробовать это,

Вставить в Db2.dbo. Student выбрать * из Db1.dbo. Student

Это должно сработать

mayank1290

найдена та же ошибка- - - недопустимый объект Db1.dbo. Student

Karthik Harve

если Db1 и Db2 являются допустимыми именами баз данных, то запрос определенно будет работать.

mayank1290

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

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings ["Порядок"].Параметр connectionString);
SqlConnection con1 = новый SqlConnection(ConfigurationManager.ConnectionStrings ["Order1"]. ConnectionString);
protected void Page_Load(отправитель объекта, EventArgs e)
{

}
охраняемых недействительными обработчика button1_click(объект отправителя, EventArgs в электронной)
{
SqlCommand cmd = new SqlCommand ("SELECT * INTO Db2.dbo. student FROM Db1.dbo. student", con1);
вы видите con1.Открыть();
против.Открыть();
УМК.Метод executenonquery();
вы видите con1.Закрывать();
против.Закрывать();


}

Karthik Harve

"Выбрать * в DB2.ДБО.студент из Бд1.ДБО.студент"
этот запрос создаст таблицу "Student" в базе данных Db2 с той же структурой, что и Db1 Student. и он также скопирует все данные.

если таблица Student в db2 уже существует, то используйте следующий запрос.
"Вставить в DB2.ДБО.Студент выбрать * из Бд1.ДБО.Студент"

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

mayank1290

та же ошибка-объект недействителен
позвольте мне подтвердить насчет строки подключения...на самом деле для двух баз данных я использую две строки подключения.
Итак, какой объект используется для открытия и закрытия соединения и передачи..
SqlCommand cmd = new SqlCommand ("SELECT * INTO Db2.dbo. student FROM Db1.dbo. student", con1);

Karthik Harve

"Вставить в DB2.ДБО.Студент выбрать * из Бд1.ДБО.Студент"
этот запрос будет работать для любой из строк соединений, если только имя сервера не совпадает. нет необходимости в двух соединительных строках. используйте свою обычную строку подключения и попробуйте. помните, что и Db1, и Db2 должны находиться на одном сервере.

mayank1290

спасибо за ответ Г-Н Картик
на самом деле мое имя базы данных-Db1.mdf и Db2.mdf, и оба имеют одинаковые имена таблиц.и сервер также одинаков, потому что я использую его в одном проекте.
но каждый раз я получаю одну и ту же ошибку- " недопустимый объект Db1.dbo. student"

Рейтинг:
2

Nilesh Patil Kolhapur

Привет,

чтобы вставить сегодняшние записи в другую таблицу, попробуйте выполнить следующий запрос
создайте процедуру strored для этого запроса

Declare vchrScript as nvarchar(max)
set vchrScript='insert into Db2.dbo.table1(col1,col2,col3)(select col1,col2,col3 from Db1.dbo.table1 where colDate=getdate())'
Execute sp_executesql @vchrScript


надеюсь, это поможет вам
удача


mayank1290

прежде всего спасибо за ответ ....
но я хочу перенести данные в таблицу другой базы данных.другая база данных также существует в том же проекте ...

Команда sqlcommand cmd и = новая команда sqlcommand("вставить в DB2.студент МДФ..(имя, адрес,дата)Select имя, адрес,дату из базы данных db1.студент МДФ..", кон);
против.Открыть();
УМК.Метод executenonquery();
против.Закрывать();
но это дает ошибку--
Не удалось найти сервер " Db1 " в sys.servers. Убедитесь, что указано правильное имя сервера. При необходимости выполните хранимую процедуру sp_addlinkedserver, чтобы добавить сервер в sys. servers.

так что, пожалуйста, дайте мне решение..

Nilesh Patil Kolhapur

у вас есть, чтобы изменить connectionString, чтобы сделать это.
Ans Karthik Harve создают новую таблицу каждый раз, когда проверяют ее

mayank1290

у меня есть две базы данных: одна-Db1, другая-Db2.
я хочу, чтобы скопировать данные из Бд1 студента таблицы студента в DB2 в таблице на событие нажатия кнопки....


поэтому, пожалуйста, дайте мне решение...

Nilesh Patil Kolhapur

попробовать это
вставить в dbo.В DB2.таблица2(столбца col1,столбец col2,кол3)(выберите столбец col1,столбец col2,кол3 от dbo.Бд1.таблица1 где colDate=функции getdate())

mayank1290

на самом деле мое имя базы данных-Db1.mdf и Db2.mdf, и оба имеют одинаковые имена таблиц.и сервер также одинаков, потому что я использую его в одном проекте.
но каждый раз я получаю одну и ту же ошибку- " недопустимый объект Db1.dbo. student"

Nilesh Patil Kolhapur

попробуйте это вставить в DB2.ДБО.таблицы table1(col1 и,столбец col2,кол3)(выберите столбец col1,столбец col2,кол3 от данных db1.ДБО.таблица1 где colDate=функции getdate())

Nilesh Patil Kolhapur

проверьте обновленное решение

Рейтинг:
2

Member 12092495

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


[no name]

Нет! Никогда, никогда не используйте учетную запись sa!

Dave Kreskowiak

Не добавляйте ответ на вопрос пятилетней давности, на который уже был дан ответ.

Кроме того, ваш ответ-это вообще не ответ. Вы никогда в жизни не используете учетную запись SA ни для чего, кроме установки SQL server. После этого он вообще ни для чего не будет использоваться, ну, если только вы не хотите рискнуть уничтожить сервер вместе с ним.