Member 13588700 Ответов: 2

Как создать новую копию базы данных


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

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

I create my windows form application by c# with sql server db Iwount to create anew copy from database on clik in menustripitemtools  named new how to do this

Gerry Schmitz

Вы пробовали это просто с помощью SQL? Или вы хотите, чтобы мы тоже кодировали SQL?

(C# "программа" просто "посылает" команды SQL).

2 Ответов

Рейтинг:
2

Wendelius

Один из способов создать новую копию базы данных-восстановить ее из исходной резервной копии. Иначе говоря

в Management Studio
- Создайте новую, пустую базу данных базы данных
- Создайте объекты, которые вы хотите, чтобы новая база данных содержала
- Создайте полную резервную копию базы данных, для получения дополнительной информации см. Создание полной резервной копии базы данных (SQL Server) - SQL Server | Microsoft Docs[^]

Теперь у вас есть начальная резервная копия, которую вы можете использовать в своем проекте
- Включите резервные копии файлов в свой проект
- При необходимости используйте команду RESTORE для восстановления новой базы данных из резервной копии, см. Восстановление (Transact-SQL) - SQL Server | Microsoft Docs[^]

Описанный выше подход требует наличия административных прав для создания новой базы данных (очевидно), но также компьютер, на котором работает SQL server, должен иметь доступ к файлам, которые будут восстановлены. Таким образом, вам может потребоваться скопировать файлы в нужное место, прежде чем использовать их.

Другой, довольно похожий подход заключается в написании сценария базы данных вместо восстановления резервной копии. В SSMS вы можете легко написать сценарий базы данных, см. Учебник: объекты сценариев в среде SQL Server Management Studio - SQL Server | Microsoft Docs[^]. Как только у вас есть скрипт, вы можете выполнять команды из него, как уже описано.

Краткий комментарий по этому поводу: обычно создание базы данных-это не та операция, которую делают обычные пользователи. Когда база данных создается, нужно знать такие вещи, как
- Устройства, на которых будут располагаться файлы базы данных
- Какие привилегии должны быть предоставлены базе данных в контексте всего сервера баз данных
- Какую конфигурацию имеет сервер баз данных, достаточно ли ее для созданной базы данных
- Любые изменения, необходимые для планов резервного копирования сервера
и т.д.

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


Рейтинг:
1

RickZeeland

Есть несколько способов сделать это, вы можете сделать это программно, как в этом примере:
https://www.c-sharpcorner.com/article/create-a-sql-server-database-dynamically-in-C-Sharp/[^]

Вы также можете создать сценарий в среде SQL Server Management Studio и запустить его из своего приложения, но остерегайтесь операторов "GO", которые не будут работать с приложением. SqlCommand.ExecuteNonQuery команда: Как выполнить файл сценария. SQL с помощью c# - Stack Overflow[^]