Сохранение диаграмм баз данных (визуальные инструменты для баз данных)
При сохранении диаграммы базы данных могут быть сохранены все изменения в базе данных, включая изменения, выполненные в таблицах, столбцах и других ее объектах.
Сохранение диаграммы базы данных
- В меню Файл выберите команду Сохранить имя_таблицы>.
- Если это новая диаграмма, которую еще ни разу не сохраняли, откроется диалоговое окно Сохранить как . Введите имя диаграммы. Если были выполнены изменения в таблицах существующей диаграммы, откроется диалоговое окно Сохранить со списком изменений, которые будут сохранены в базе данных при сохранении диаграммы.
- Нажмите кнопку Да (или ОК , если это новая диаграмма) для обновления базы в соответствии с диаграммой.
Как сохранить диаграмму базы данных sql
Данное руководство устарело. Актуальное руководство: по ADO.NET и работе с базами данных в .NET 6
Последнее обновление: 31.10.2015
Сохранение в базу данных файлов
Рассмотрим, как мы можем сохранять файлы, в частности, файлы изображений в базу данных. Для этого добавим в базу данных новую таблицу Images с четырьмя столбцами: Id (первичный ключ и идентификатор, имеет тип int), FileName (будет хранить имя файла и имеет тип nvarchar), Title (будет хранить заголовок файла и также имеет тип nvarchar) и ImageData (будет содержать бинарные данные файла и имеет тип varbimary(MAX)).

Определим код, в котором будут загружаться данные в таблицу:
private static void SaveFileToDatabase() < string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"; using (SqlConnection connection = new SqlConnection(connectionString)) < connection.Open(); SqlCommand command = new SqlCommand(); command.Connection = connection; command.CommandText = @"INSERT INTO Images VALUES (@FileName, @Title, @ImageData)"; command.Parameters.Add("@FileName", SqlDbType.NVarChar, 50); command.Parameters.Add("@Title", SqlDbType.NVarChar, 50); command.Parameters.Add("@ImageData", SqlDbType.Image, 1000000); // путь к файлу для загрузки string filename = @"C:\Users\Eugene\Pictures\cats.jpg"; // заголовок файла string title = "Коты"; // получаем короткое имя файла для сохранения в бд string shortFileName = filename.Substring(filename.LastIndexOf('\\')+1); // cats.jpg // массив для хранения бинарных данных файла byte[] imageData; using (System.IO.FileStream fs = new System.IO.FileStream(filename, FileMode.Open)) < imageData = new byte[fs.Length]; fs.Read(imageData, 0, imageData.Length); >// передаем данные в команду через параметры command.Parameters["@FileName"].Value = shortFileName; command.Parameters["@Title"].Value = title; command.Parameters["@ImageData"].Value = imageData; command.ExecuteNonQuery(); > >
После выполнения этой программы в базе данных появится соответствующая запись:

Извлечение файлов из базы данных
В прошлой теме мы рассмотрели, как добавить файл в базу данных. Теперь произведем обратную операцию — получим файл из БД. Вначале определим класс файла, который упростит работу с данными:
public class Image < public Image(int id, string filename, string title, byte[] data) < FileName = filename; Title = title; Data = data; >public int Id < get; private set; >public string FileName < get; private set; >public string Title < get; private set; >public byte[] Data < get; private set; >>
Затем в коде программы определим следующий метод:
private static void ReadFileFromDatabase() < string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"; Listimages = new List(); using (SqlConnection connection = new SqlConnection(connectionString)) < connection.Open(); string sql = "SELECT * FROM Images"; SqlCommand command = new SqlCommand(sql, connection); SqlDataReader reader = command.ExecuteReader(); while(reader.Read()) < int string filename = reader.GetString(1); string title = reader.GetString(2); byte[] data = (byte[])reader.GetValue(3); Image image = new Image(id, filename, title, data); images.Add(image); >> // сохраним первый файл из списка if(images.Count>0) < using (System.IO.FileStream fs = new System.IO.FileStream(images[0].FileName, FileMode.OpenOrCreate)) < fs.Write(images[0].Data, 0, images[0].Data.Length); Console.WriteLine("Изображение '' сохранено", images[0].Title); > > >
В этом методе с помощью SqlDataReader мы получаем значения из БД и по ним создаем объект Image, который потом добавляется в список. И в конце смотрим, если в списке есть элементы, то берем первый элемент и сохраняем его на локальный компьютер. И после сохранения в папке нашей программы появится загруженный из базы данных файл.
Ошибка при сохранении диаграммы бд
Создал бд, таблицы. Построил диаграмму, не дает сохранить. Пересоздавать не хочу лишний раз. Помогите великие хранители SQL ssms 18, express 19

Отслеживать
задан 3 дек 2021 в 17:19
user417212 user417212
Какая у вас версия SSMS? Во многих старых версиях SSMS было много ошибок с диаграммами.
3 дек 2021 в 17:48
ssms 18, а express 19
– user417212
3 дек 2021 в 18:40
Именно по этой причине. Попробуйте SSMS 18.10
3 дек 2021 в 18:56
Какая у вас версия SSMS? Во многих старых версиях SSMS было много ошибок с диаграммами. Именно по этой причине не дает сохранить. Попробуйте SSMS 18.10 
3 дек 2021 в 19:01
сходите в Tools -> Options -> Designers и снимите галку с Prevent saving changes that require table re-creation
4 дек 2021 в 11:22
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Ответ на вашу проблему можно найти просто прочитав сообщение об ошибке. Предлагается проследовать в настройки по пути Tools -> Options -> Designers и выставить галку «Prevent saving changes thath require table re-creation» или в вашем случае «запретить сохранение изменений требующих повторного создания таблицы»

Отслеживать
ответ дан 4 дек 2021 в 11:28
29.2k 1 1 золотой знак 21 21 серебряный знак 43 43 бронзовых знака
спасибо за ответ
– user417212
5 дек 2021 в 20:53
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Руководство по тех. обслуживанию
1. В обозревателе объектов установите соединение с экземпляром компонента SQL Server Database Engine и разверните его.

Установка соединения с экземпляром компонента SQL Server Database Engine.
2. Разверните папку Databases . Раскроется список существующих баз данных. Нам нужна база данных, связанная в приложением «Первая Форма». В стандартной сборке нужна база данных называется D10Task .

Выбор нужной БД.
3. Разверните БД D10Task . В раскрывшемся списке выберите раздел Tables (Таблицы) и кликните по ней правой кнопкой мыши. В открывшемся контекстном меню выберите пункт «New table. «

Создание новой таблицы БД.
4. Таким образом, создана новая таблица в существующей базе данных. Чтобы сохранить созданную таблицу, вызовите контекстное меню нажатием правой кнопки мыши и выберите действие «Сохранить» («Save table..»). После этого будут доступны все стандартные действия над таблицами БД (заполнение, настройка связей столбцов, излечение данных и т.д).