Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - Бекап таблицы через INSERT

Ответить
Настройки темы
MSFT SQL Server - Бекап таблицы через INSERT

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить 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
Скрипт создания таблицы можно получить через консоль управления SQL сервером. Скрестив оба скрипта, получив готовый бекап таблицы.

Результат
Код: Выделить весь код
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. Может, кому и пригодится, т.к. искал долго и муторно, а так будет для всех

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 09:37, 12-02-2010

 

Пользователь


Сообщения: 140
Благодарности: 14

Профиль | Отправить PM | Цитировать


А чем Ваш вариант лучше/хуже стандартного через утилиту BCP?
http://msdn.microsoft.com/en-us/library/ms162802.aspx
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:41, 12-02-2010 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


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

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 02:12, 15-02-2010 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - Бекап таблицы через INSERT

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Восстановление - Резервное копирование (бэкап) и восстановление 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




 
Переход