|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - Бекап таблицы через INSERT |
|
MSFT SQL Server - Бекап таблицы через INSERT
|
Ветеран Сообщения: 5624 |
Профиль | Отправить PM | Цитировать Иногда бывает необходимо (или просто удобно) забекапить какую то таблицу, но не бекапом, а скриптом. Т.е. сделать скрипт, который будет создавать таблицу и сразу вставлять в нее нужные данные. Нашел на просторах сети замечательную программу на http://www.eugenedotnet.com/(S(xolx3...Generator.ashx
Инсталлятор доступен по адресу http://www.eugenedotnet.com/codeexam...tGenerator.zip Что она делает: Выбираем базу, таблицу и сразу генерируется скрипт. Пример: IF('Actions' in (SELECT t.[name] FROM sys.tables t JOIN sys.columns c ON (c.[object_id] = t.[object_id]) WHERE 0 < c.[is_identity])) SET IDENTITY_INSERT [dbo].[Actions] ON INSERT INTO [dbo].[Actions](id, Action_name) VALUES( 1, 'Продам ' ) INSERT INTO [dbo].[Actions](id, Action_name) VALUES( 2, 'Куплю' ) INSERT INTO [dbo].[Actions](id, Action_name) VALUES( 3, 'Сдам' ) INSERT INTO [dbo].[Actions](id, Action_name) VALUES( 4, 'Обменяю' ) IF('Actions' in (SELECT t.[name] FROM sys.tables t JOIN sys.columns c ON (c.[object_id] = t.[object_id]) WHERE 0 < c.[is_identity])) SET IDENTITY_INSERT [dbo].[Actions] OFF Результат USE [YourBD] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[ВАША_ТАБЛИЦА]( [id] [int] IDENTITY(1,1) NOT NULL, [Action_name] [char](50) COLLATE Cyrillic_General_CI_AS NOT NULL, CONSTRAINT [PK_Actions] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO IF('ВАША_ТАБЛИЦА' in (SELECT t.[name] FROM sys.tables t JOIN sys.columns c ON (c.[object_id] = t.[object_id]) WHERE 0 < c.[is_identity])) SET IDENTITY_INSERT [dbo].[ВАША_ТАБЛИЦА] ON INSERT INTO [dbo].[ВАША_ТАБЛИЦА](id, Action_name) VALUES( 1, 'Продам ' ) INSERT INTO [dbo].[ВАША_ТАБЛИЦА](id, Action_name) VALUES( 2, 'Куплю ' ) INSERT INTO [dbo].[ВАША_ТАБЛИЦА](id, Action_name) VALUES( 3, 'Сдам ' ) INSERT INTO [dbo].[ВАША_ТАБЛИЦА](id, Action_name) VALUES( 4, 'Обменяю ' ) IF('ВАША_ТАБЛИЦА' in (SELECT t.[name] FROM sys.tables t JOIN sys.columns c ON (c.[object_id] = t.[object_id]) WHERE 0 < c.[is_identity])) SET IDENTITY_INSERT [dbo].[ВАША_ТАБЛИЦА] OFF P.S. Может, кому и пригодится, т.к. искал долго и муторно, а так будет для всех |
|
------- Отправлено: 09:37, 12-02-2010 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать А чем Ваш вариант лучше/хуже стандартного через утилиту BCP?
http://msdn.microsoft.com/en-us/library/ms162802.aspx |
Отправлено: 11:41, 12-02-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Если честно, то я не нашел данную утилиту. Но, почитав ее, могу ответить - отличается простотой использования для конечного пользователя А в целом, конечно, bcp дает те же результаты и даже больше, но в ней и дольше разбираться.
|
------- Отправлено: 02:12, 15-02-2010 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Восстановление - Резервное копирование (бэкап) и восстановление | Guest | Программное обеспечение Windows | 194 | 12-02-2022 20:38 | |
Бекап на SQL 2005 | KYI | Microsoft Windows NT/2000/2003 | 8 | 09-04-2008 13:28 | |
Не могу сделать бекап в win2k | AlexKKK | Microsoft Windows NT/2000/2003 | 4 | 18-09-2007 09:39 | |
Как сделать Бекап? | Falcon1 | Хочу все знать | 3 | 09-06-2003 22:12 |
|