Как добавить бд в sql server
Перейти к содержимому

Как добавить бд в sql server

  • автор:

Как добавить бд в sql server

  • 10/24/2016
  • Чтение занимает 6 мин

    Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions)

    В этом разделе описывается присоединение базы данных в SQL Server 2019 (15.x) SQL Server 2019 (15.x) с помощью среды SQL Server Management Studio SQL Server Management Studio или Transact-SQL Transact-SQL . This topic describes how to attach a database in SQL Server 2019 (15.x) SQL Server 2019 (15.x) by using SQL Server Management Studio SQL Server Management Studio or Transact-SQL Transact-SQL . Эту функцию можно использовать для копирования, перемещения или обновления базы данных SQL Server SQL Server . You can use this feature to copy, move, or upgrade a SQL Server SQL Server database.

    Предварительные требования Prerequisites

    Базу данных сначала необходимо отсоединить. The database must first be detached. Попытка присоединить базу данных, которая не была отсоединена, приведет к возникновению ошибки. Attempting to attach a database that has not been detached will return an error. Дополнительные сведения см. в разделе Отсоединение базы данных. For more information, see Detach a Database.

    При присоединении базы данных должны быть доступны все файлы данных (файлы MDF и LDF). When you attach a database, all data files (MDF and LDF files) must be available. Если у какого-либо файла данных путь отличается от того, каким он был при первом создании или последнем присоединении, необходимо указать текущий путь к файлу. If any data file has a different path from when the database was first created or last attached, you must specify the current path of the file.

    Если при присоединении базы данных файлы MDF и LDF находятся в разных каталогах, а один из путей содержит \\?\GlobalRoot, операция завершается ошибкой. When you attach a database, if MDF and LDF files are located in different directories and one of the paths includes \\?\GlobalRoot, the operation will fail.

    Для чего использовать присоединение? Is Attach the best choice?

    В пределах одного экземпляра базы данных рекомендуется перемещать с помощью процедуры планового перемещения ALTER DATABASE , а не с помощью операций отсоединения и присоединения. We recommend that you move databases by using the ALTER DATABASE planned relocation procedure instead of using detach and attach, when moving database files within the same instance. Дополнительные сведения см. в статье Move User Databases. For more information, see Move User Databases.

    Мы не рекомендуем использовать отсоединение и присоединение для резервного копирования и восстановления, We don’t recommend using detach and attach for Backup and Recovery. так как резервные копии журналов транзакций отсутствуют, а файлы могут быть случайно удалены. There are no transaction log backups, and it’s possible to accidentally delete files.

    безопасность Security

    Разрешения на доступ к файлам устанавливаются во время выполнения определенных операций с базами данных, включая отсоединение и присоединение баз данных. File access permissions are set during a number of database operations, including detaching or attaching a database. Дополнительные сведения о разрешениях на доступ к файлам, настраиваемых при отсоединении и присоединении базы данных см. в разделе Защита данных и файлов журналов электронной документации по SQL Server 2008 R2 SQL Server 2008 R2 (документация актуальна). For information about file permissions that are set whenever a database is detached and attached, see Securing Data and Log Files from SQL Server 2008 R2 SQL Server 2008 R2 Books Online (Still a valid read!)

    Не рекомендуется подключать или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. We recommend that you do not attach or restore databases from unknown or untrusted sources. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Such databases could contain malicious code that might execute unintended Transact-SQL Transact-SQL code or cause errors by modifying the schema or the physical database structure. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код. Before you use a database from an unknown or untrusted source, run DBCC CHECKDB on the database on a nonproduction server and also examine the code, such as stored procedures or other user-defined code, in the database. Дополнительные сведения о присоединении баз данных и сведения об изменениях, вносимых при присоединении баз данных в метаданные, см. в статье Присоединение и отсоединение базы данных (SQL Server). For more information about attaching databases and information about changes that are made to metadata when you attach a database, see Database Detach and Attach (SQL Server).

    Permissions Permissions

    Требуется разрешение CREATE DATABASE , CREATE ANY DATABASE или ALTER ANY DATABASE . Requires CREATE DATABASE , CREATE ANY DATABASE , or ALTER ANY DATABASE permission.

    Использование среды SQL Server Management Studio Using SQL Server Management Studio

    Присоединение базы данных To Attach a Database

    В SQL Server Management Studio SQL Server Management Studio обозревателе объектов Компонент SQL Server Database Engine SQL Server Database Engine подключитесь к экземпляру компонента и разверните его представление в SSMS. In SQL Server Management Studio SQL Server Management Studio Object Explorer, connect to an instance of the Компонент SQL Server Database Engine SQL Server Database Engine , and then click to expand that instance view in SSMS.

    Щелкните правой кнопкой мыши узел Базы данных и выберите команду Присоединить. Right-click Databases and click Attach.

    Чтобы указать присоединяемую базу данных, в диалоговом окне Присоединение баз данных нажмите кнопку Добавить, в диалоговом окне Расположение файлов базы данных выберите диск, на котором находится база данных, и разверните дерево каталогов, чтобы найти и выбрать MDF-файл, например: In the Attach Databases dialog box, to specify the database to be attached, click Add; and in the Locate Database Files dialog box, select the disk drive where the database resides and expand the directory tree to find and select the .mdf file of the database; for example:

    C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Data.mdf

    При попытке выбора базы данных, которая уже присоединена, возникает ошибка. Trying to select a database that is already attached generates an error.

    Базы данных для присоединения Databases to attach
    Отобразятся сведения о выбранных базах данных. Displays information about the selected databases.

    Отображается значок, указывающий на состояние операции присоединения. Displays an icon indicating the status of the attach operation. Возможные значки описываются в приводимом ниже описании Состояние . The possible icons are described in the Status description, below).

    Расположение файла MDF MDF File Location
    Отображается путь и имя выбранного MDF-файла. Displays the path and file name of the selected MDF file.

    Имя базы данных Database Name
    Отображается имя базы данных. Displays the name of the database.

    Присоединить как Attach As
    Необязательный параметр, указывает другое имя, под которым присоединяется база данных. Optionally, specifies a different name for the database to attach as.

    Владелец Owner
    Содержит раскрывающийся список возможных владельцев базы данных, из которого при необходимости можно выбрать другого владельца. Provides a drop-down list of possible database owners from which you can optionally select a different owner.

    Состояние Status
    Отображается состояние базы данных в соответствии со следующей таблицей. Displays the status of the database according to the following table.

    Значок Icon Текст состояния Status text Описание Description
    (Нет значка) (No icon) (Нет текста) (No text) Операция присоединения не была запущена или находится в режиме ожидания для этого объекта. Attach operation has not been started or may be pending for this object. Это состояние по умолчанию при открытии диалогового окна. This is the default when the dialog is opened.
    Зеленый, указывающий направо треугольник Green, right-pointing triangle Выполняется In progress Операция присоединения была запущена, но не завершена. Attach operation has been started but it is not complete.
    Зеленый флажок Green check mark Успешно Success Объект успешно присоединен. The object has been attached successfully.
    Красный кружок с белым крестом внутри Red circle containing a white cross Error Error При выполнении операции присоединения возникла ошибка, и операция не была успешно завершена. Attach operation encountered an error and did not complete successfully.
    Кружок с двумя черными квадратами (слева и справа) и двумя белыми квадратами (сверху и снизу) Circle containing two black quadrants (on left and right) and two white quadrants (on top and bottom) Остановлена Stopped Операция присоединения не была успешно завершена, т.к. пользователь остановил операцию. Attach operation was not completed successfully because the user stopped the operation.
    Кружок, содержащий изогнутую стрелку, указывающую в направлении против часовой стрелки Circle containing a curved arrow pointing counter-clockwise Выполнен откат Rolled Back Операция присоединения была успешной, но был выполнен ее откат из-за ошибки, возникшей при вложении другого объекта. Attach operation was successful but it has been rolled back due to an error during attachment of another object.

    Сообщение Message
    Отображается пустое сообщение или гиперссылка «Файл не найден». Displays either a blank message or a «File not found» hyperlink.

    Добавление Add
    Найдите необходимые основные файлы базы данных. Find the necessary main database files. Если пользователь выбирает mdf-файл, необходимые сведения автоматически вводятся в соответствующие поля сетки Базы данных для присоединения . When the user selects an .mdf file, applicable information is automatically filled in the respective fields of the Databases to attach grid.

    Удалить Remove
    Удаляет выбранный файл из сетки Базы данных для присоединения . Removes the selected file from the Databases to attach grid.

    Сведения о базе данных « « « » database details
    Отображаются имена файлов, которые необходимо присоединить. Displays the names of the files to be attached. Чтобы проверить или изменить путь к файлу, нажмите кнопку Обзор ( . ). To verify or change the pathname of a file, click the Browse button (. ).

    Если файл не существует, в столбце Сообщение отображается сообщение «Не найден». If a file does not exist, the Message column displays «Not found.» Если файл журнала не найден, то он существует в другом каталоге или был удален. If a log file is not found, it exists in another directory or has been deleted. Необходимо или обновить путь файла в сетке Сведения о базе данных таким образом, чтобы этот путь указывал на правильное расположение, или удалить файл журнала из сетки. You need to either update the file path in the database details grid to point to the correct location or remove the log file from the grid. Если MDF-файл не найден, необходимо обновить путь этого файла в сетке таким образом, чтобы этот путь указывал на правильное расположение. If an .ndf data file is not found, you need to update its path in the grid to point to the correct location.

    Имя исходного файла Original File Name
    Отображается имя присоединенного файла, принадлежащего базе данных. Displays the name of the attached file belonging to the database.

    Тип файла File Type
    Указывается тип файла: Данные или Журнал. Indicates the type of file, Data or Log.

    Текущий путь к файлу Current File Path
    Отображается путь к выбранному файлу базы данных. Displays the path to the selected database file. Путь может быть изменен вручную. The path can be edited manually.

    Сообщение Message
    Отображается пустое сообщение или гиперссылка «Файл не найден«. Displays either a blank message or a «File not found» hyperlink.

    Использование Transact-SQL Using Transact-SQL

    Присоединение базы данных To attach a database

    Установите соединение с компонентом Компонент Database Engine Database Engine . Connect to the Компонент Database Engine Database Engine .

    На панели «Стандартная» нажмите Создать запрос. From the Standard bar, click New Query.

    Выполните инструкцию CREATE DATABASE с предложением FOR ATTACH . Use the CREATE DATABASE statement with the FOR ATTACH clause.

    Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. Copy and paste the following example into the query window and click Execute. В этом примере производится присоединение файлов базы данных AdventureWorks2012 AdventureWorks2012 с ее последующим переименованием в MyAdventureWorks . This example attaches the files of the AdventureWorks2012 AdventureWorks2012 database and renames the database to MyAdventureWorks .

    Кроме того, можно вызвать хранимую процедуру sp_attach_db или sp_attach_single_file_db . Alternatively, you can use the sp_attach_db or sp_attach_single_file_db stored procedure. Но эти расширенные хранимые процедуры в будущих версиях SQL Server SQL Server будут удалены. However, these procedures will be removed in a future version of Microsoft SQL Server SQL Server . Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Вместо этого рекомендуется использовать CREATE DATABASE . FOR ATTACH . We recommend that you use CREATE DATABASE . FOR ATTACH instead.

    Дальнейшие действия. После обновления базы данных SQL Server Follow Up: After Upgrading a SQL Server Database

    После обновления базы данных при помощи описанного метода присоединения, эта база данных сразу становится доступной, после чего обновляется автоматически. After you upgrade a database by using the attach method, the database becomes available immediately and is automatically upgraded. Если база данных содержит полнотекстовые индексы, то в процессе обновления будет произведен их импорт, сброс или перестроение в зависимости от установленного значения свойства сервера Режим обновления полнотекстового каталога . If the database has full-text indexes, the upgrade process either imports, resets, or rebuilds them, depending on the setting of the Full-Text Upgrade Option server property. Если при обновлении выбран режим Импортировать или Перестроить, то полнотекстовые индексы во время обновления будут недоступны. If the upgrade option is set to Import or Rebuild, the full-text indexes will be unavailable during the upgrade. В зависимости от объема индексируемых данных процесс импорта может занять несколько часов, а перестроение — в несколько (до десяти) раз больше. Depending the amount of data being indexed, importing can take several hours, and rebuilding can take up to ten times longer. Обратите внимание, что если при обновлении выбран режим Импортировать, а полнотекстовый каталог недоступен, то связанные с ним полнотекстовые индексы будут перестроены. Note also that when the upgrade option is set to Import, if a full-text catalog is not available, the associated full-text indexes are rebuilt.

    Если уровень совместимости пользовательской базы данных до обновления был 100 или выше, после обновления он останется таким же. If the compatibility level of a user database is 100 or higher before upgrade, it remains the same after upgrade. Если уровень совместимости до обновления был 90, в обновленной базе данных он устанавливается в 100, что является минимально поддерживаемым уровнем совместимости в SQL Server 2019 (15.x) SQL Server 2019 (15.x) . If the compatibility level is 90 before upgrade, in the upgraded database, the compatibility level is set to 100, which is the lowest supported compatibility level in SQL Server 2019 (15.x) SQL Server 2019 (15.x) . Дополнительные сведения см. в разделе Уровень совместимости инструкции ALTER DATABASE (Transact-SQL). For more information, see ALTER DATABASE Compatibility Level (Transact-SQL).

    Для подключения базы данных из экземпляра под управлением SQL Server 2014 (12.x) SQL Server 2014 (12.x) или более ранней версии, в которой включена система отслеживания измененных данных (CDC), потребуется также выполнить следующую команду, чтобы обновить метаданные системы отслеживания измененных данных (CDC). If you are attaching a database from an instance running SQL Server 2014 (12.x) SQL Server 2014 (12.x) or below which had Change Data Capture (CDC) enabled, you will also need to execute the command below to upgrade the Change Data Capture (CDC) metadata.

    Microsoft SQL Server: работа с базами данных

    Наши пользователи могут использовать базы данных Microsoft SQL Server 2016 на своих виртуальных площадках в рамках, предусмотренных соответствующими тарифами.

    Параметры и способы соединения с Microsoft SQL Server
    • Имя хоста (сервера), на котором размещена база данных Microsoft SQL Server: uXXXXX.mssql.masterhost.ru;
    • Порт: 1433;
    • Логин: соответствует названию виртуальной площадки — uXXXXX;
    • Пароль: указан в письме, которое пользователь получает при регистрации;
    • Имя базы данных: соответствует названию виртуальной площадки — uXXXXX;
    • Подключение нужно осуществлять по протоколу TCP/IP.
    Подключение к SQL-серверу через «Microsoft SQL Server Management Studio Express»

    Чтобы получить доступ к базе данных Microsoft SQL Server, возможно использовать Microsoft SQL Server Management Studio Express .

    Подключение к Microsoft SQL Server 2012

    В параметрах выберите в качестве сетевого протокола TCP/IP.

    Подключение к Microsoft SQL Server 2012: свойства соединения

    Создание новой базы данных

    Новую базу данных вы можете создать через раздел Услуги, в Личном кабинете. Выберите нужную «виртуальную площадку», далее в разделе «MS SQL» нажать на кнопку «+ База MS SQL». Затем вам необходимо указать имя (логин) и выбрать владельца новой базы.

    Использовать Microsoft SQL Server Management Studio для создания новых баз данных нельзя.

    Создание нового логина

    Создать новый логин для базы данных Microsoft SQL вы можете через раздел Услуги, в Личном кабинете. Выберите нужную «виртуальную площадку», далее в разделе «MS SQL» нажать на кнопку «+ Пользователь MS SQL». Затем вам необходимо указать имя (логин) для нового пользователя.

    Уменьшение физического размера файлов баз данных и лога транзакций MS SQL Server.

    Из графического интерфейса Microsoft SQL Server Management Studio:

    • В обозревателе объектов подключитесь к экземпляру Microsoft SQL Server, 2016 Web Edition и разверните его.
    • Разверните узел «Базы данных», затем правой кнопкой мыши щелкните базу данных, которую нужно сжать.
    Изменение кодировки сравнения (collation)

    По умолчанию кодировка collation выставлена как Cyrillic_General_CI_AS, изменить кодировку для сравнений можно следующим SQL-запросом: где uXXXXX — имя БД, где требуется данная операция. Список доступных кодировок можно узнать так:

    Как дать права на доступ к базе определенному логину

    Для SQL — дополнительный SQL логин, но настраивать права нужно самому: Заводим еще один SQL логин — uXXX_Ann Для начала используем нашу базу: Создаем пользователя для определенного «логина»:

    Наделяем его правами (например только чтение таблиц): Или можем дать пользователю только конкретные права, на конкретные таблицы. Например, давайте дадим пользователю InetUser права на SELECT, INSERT, UPDATE для таблицы test, следующим SQL-запросом : При всем при этом, при осуществлении доступа через SQL Management Studio, под дополнительным логином не являющимся владельцем базы, не будет видно базу данных в списке доступных баз, но будет возможность выполнять разрешенные SQL-запросы .

    Создание и удаление БД в MS SQL Server. Как создать базу данных в среде SQL Server

    Для создания базы данных используется команда CREATE DATABASE . Чтобы создать новую базу данных откроем SQL Server Management Studio. Нажмем на назначение сервера в окне Object Explorer и в появившемся меню выберем пункт New Query . В центральное поле для ввода выражений sql введем следующий код: CREATE DATABASE usersdb Тем самым мы создаем базу данных, которая будет называться «usersdb»: Для выполнения команды нажмем на панели инструментов на кнопку Execute или на клавишу F5. И на сервере появится новая база данных. После создания базы даных, мы можем установить ее в качестве текущей с помощью команды USE :

    Прикрепление базы данных

    Возможна ситуация, что у нас уже есть файл базы данных, который, к примеру, создан на другом компьютере. Файл базы данных представляет файл с расширением mdf, и этот файл в принципе мы можем переносить. Однако даже если мы скопируем его компьютер с установленным MS SQL Server, просто так скопированная база данных на сервере не появится. Для этого необходимо выполнить прикрепление базы данных к серверу. В этом случае применяется выражение: CREATE DATABASE название_базы_данных ON PRIMARY(FILENAME=»путь_к_файлу_mdf_на_локальном_компьютере») FOR ATTACH; В качестве каталога для базы данных лучше использовать каталог, где хранятся остальные базы данных сервера. На Windows 10 по умолчанию это каталог C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA . Например, пусть в моем случае файл с данными называется userstoredb.mdf. И я хочу этот файл добавить на сервер как базу данных. Вначале его надо скопировать в выше указанный каталог. Затем для прикрепления базы к серверу надо использовать следующую команду: CREATE DATABASE contactsdb ON PRIMARY(FILENAME=»C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\userstoredb.mdf») FOR ATTACH;

    После выполнения команды на сервере появится база данных contactsdb.

    Удаление базы данных

    Для удаления базы данных применяется команда DROP DATABASE , которая имеет следующий синтаксис: DROP DATABASE database_name1 [, database_name2]. После команды через запятую мы можем перечислить все удаляемые базы данных. Например, удаление базы данных contactsdb: DROP DATABASE contactsdb Стоит учитывать, что даже если удаляемая база данных была прикреплена, то все равно будут удалены все файлы базы данных. Для этого понадобится установленная система управления базами данных (СУБД) DB2. Мы будем использовать диалект языка SQL, который используется именно в этой СУБД. Первая команда, которую мы будем применять для создании базы данных — это команда CREATE DATABASE. Её синтаксис следующий: CREATE TABLE ИМЯ_ТАБЛИЦЫ (имя_первого_столбца тип данных, . имя_последнего_столбца тип данных, первичный ключ, ограничения (не обязательно)) Так как наша база данных моделирует сеть аптек, то в ней есть такие сущности, как «Аптека» (таблица Pharmacy в нашем примере создания базы данных), «Препарат» (таблица Preparation в нашем примере создания базы данных), «Доступность (препаратов в аптеке)» (таблица Availability в нашем примере создания базы данных), «Клиент» (таблица Client в нашем примере создания базы данных) и другие, которые здесь подробно и разберём. Разработке модели «сущность-связь» можно посвятить не одну статью, но если нас прежде всего интересуют команды языка SQL для создания базы данных и таблиц в ней, то условимся считать, что связи между сущностями уже нам понятны. На рисунке ниже приведено представление модели нашей базы данных с атрибутами сущностей (таблиц) и связями между таблицами. Для увеличения рисунка можно нажать на него левой кнопкой мыши. Как уже говорилось, в разбираемом здесь примере создания базы данных использовался вариант языка SQL, который используется в системе управления базами данных (СУБД) DB2. Он является регистронезависимым, то есть не имеет значение, набраны ли команды и отдельные слова в них строчными или прописными буквами. Для иллюстрации этой особенности приведены команды без особой системы набранные строчными и прописными буквами. Теперь приступим к созданию команд. Первая наша команда SQL создаёт базу данных PHARMNETWORK: CREATE DATABASE PHARMNETWORK

    Описание таблицы PHARMACY (Аптека): Пишем команду, которая создаёт таблицу PHARMACY (Аптека), значения первичного ключа PH_ID генерируются автоматически от 1 с шагом 1, вносится проверка на то, чтобы значения атрибута Address в этой таблице были уникальными: CREATE TABLE PHARMACY(PH_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), Address varchar(40) NOT NULL, PRIMARY KEY(PH_ID), CONSTRAINT PH_UNIQ UNIQUE(Address)) Описание таблицы GROUP (Группа препаратов): Пишем команду, которая создаёт таблицу Group (Группа препаратов), значения первичного ключа GR_ID генерируются автоматически от 1 с шагом 1, проводится проверка уникальности наименования группы (для этого используется ключевое слово CONSTRAINT): CREATE TABLE GROUP(GR_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), Name varchar(40) NOT NULL, PRIMARY KEY(GR_ID), CONSTRAINT GR_UNIQ UNIQUE(Name)) Описание таблицы PREPARATION (Препарат): Команда, которая создаёт таблицу PREPARATION, значения первичного ключа PR_ID генерируются автоматически от 1 с шагом 1, определяется, что значения внешнего ключа GR_ID (Группа препаратов) не могут принимать значение NULL, определена проверка уникальности значений атрибута Name: CREATE TABLE PREPARATION(PR_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), Name varchar(40) NOT NULL, GR_ID int NOT NULL, PRIMARY KEY(PR_ID), constraint PR_UNIQ UNIQUE(Name)) Далее нам требуется позаботиться об ограничениях целостности. Это очень удобно слелать с помощью команды alter table. Эта команда изучается на уроке SQL ALTER TABLE — изменение таблицы базы данных. Теперь самое время создать таблицу AVAILABILITY (Доступность или Наличие препарата в аптеке). Её описание: Пишем команду, которая создаёт таблицу AVAILABILITY. Определяются даты начала (не может быть NULL) и окончания (по умолчанию NULL). CREATE TABLE AVAILABILITY(A_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), PH_ID INT NOT NULL, PR_ID INT NOT NULL, DateStart varchar(20) NOT NULL, DateEnd varchar(20) DEFAULT NULL, QUANTITY INT NOT NULL, MART varchar(3) DEFAULT NULL, PRIMARY KEY(A_ID), CONSTRAINT AVA_UNIQ UNIQUE(PH_ID, PR_ID)) Создаём таблицу DEFICIT (Дефицит препарата в аптеке, то есть, неудовлетворённый запрос). Её описание:

    Пишем команду, которая создаёт таблицу DEFICIT: CREATE TABLE DEFICIT(D_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), PH_ID INT NOT NULL, PR_ID INT NOT NULL, Solution varchar(40) NOT NULL, DateStart varchar(20) NOT NULL, DateEnd varchar(20) DEFAULT NULL) Осталось немного. Мы уже дошли до команды, которая создаёт таблицу Employee (Сотрудник). Её описание: Пишем команду, которая создаёт таблицу Employee (Сотрудник), с первичным ключом, генерируемым по тем же правилам, что и первичные ключи предыдущих таблиц, в которых они существуют. Внешним ключом PH_ID Сотрудник связан с PHARMACY (Аптекой).: CREATE TABLE EMPLOYEE(E_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), F_Name varchar(40) NOT NULL, L_Name varchar(40) NOT NULL, POST varchar(40) NOT NULL, PH_ID INT NOT NULL, PRIMARY KEY(E_ID)) Очередь дошла до создании таблицы CLIENT (Клиент). Её описание: Пишем команду, создающую таблицу CLIENT (Клиент), в отношении первичного ключа которого справедливо предыдущее описание. Особенность этой таблицы в том, что её атрибуты F_Name и L_Name имеют по умолчанию значение NULL. Это связано с тем, что клиенты могут быть как зарегистрированными, так и незарегистрированными. У последних значения имени и фамилии как раз и будут неопределёнными (то есть NULL): CREATE TABLE CLIENT(C_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), FName varchar(40) DEFAULT NULL, LName varchar(40) DEFAULT NULL, DateReg varchar(20), PRIMARY KEY(C_ID)) Предпоследняя таблица в нашей базе данных — таблица BASKET (Корзина покупок). Её описание: Пишем команду, создающую таблицу BASKET (Корзина покупок), так же с уникальным и инкрементируемым первичным ключом и связанную внешним ключами C_ID и E_ID с Клиентом и Сотрудником соответственно: CREATE TABLE BASKET(BS_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), C_ID INT NOT NULL, E_ID INT NOT NULL, PRIMARY KEY(BS_ID)) И, наконец, последняя таблица в нашей базе данных — таблица BUYING (покупка). Её описание:

    Имя поля Тип данных Описание
    B_ID smallint Идентификационный номер покупки
    PH_ID smallint Идентификационный номер аптеки
    PR_ID smallint Идентификационный номер препарата
    BS_ID varchar(40) Идентификационный номер корзины покупок
    Price varchar(20) Цена
    Date varchar(20) Дата

    Пишем команду, создающую таблицу BUYING (покупка), так же с уникальным и инкрементируемым первичным ключом и связанную внешними ключами BS_ID, PH_ID, PR_ID с Корзиной покупок, Аптекой и Препаратом соответственно: CREATE TABLE BUYING(B_ID smallint NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), BS_ID INT NOT NULL, PH_ID INT NOT NULL, PR_ID INT NOT NULL, DateB varchar(20) NOT NULL, Price Double NOT NULL, PRIMARY KEY(B_ID))

    И совсем уже в завершение темы создания базы данных обещанное отступление о соблюдении ограничений целостности, когда решение — более сложное, чем написание команды. В нашем примере необходимо соблюдать следующее условие: при покупке единицы препарата значение количества этого препарата в таблице AVAILABILITY должно соответственно уменьшиться. Вообще говоря, для таких операций в языке SQL существуют особые средства, называемые триггерами. Но триггеры — вещь капризная: на практике они могут и не сработать или сработать не так, как предусмотрено. Поэтому разработчики по возможности ищут программные средства решения таких задач, пример которых упомянут в этом абзаце. Каждый из нас регулярно сталкивается и пользуется различными базами данных. Когда мы выбираем адрес электронной почты, мы работаем с базой данных. Базы данных используют поисковые сервисы, банки для хранения данных о клиентах и т.д. Но, несмотря на постоянное использование баз данных, даже для многих разработчиков программных систем остается много «белых пятен» из-за разного толкования одних и тех же терминов. Мы дадим краткое определение основных терминов баз данных перед рассмотрением языка SQL. Итак. База данных файл или набор файлов для хранения упорядоченных структур данных и их взаимосвязей. Очень часто базой данных называют систему управления — это только хранилище информации в определенном формате и может работать с различными СУБД. Таблица представим себе папку, в которой хранятся документы, сгруппированные по определенному признаку, например список заказов за последний месяц. Это и есть таблица в компьютерной Отдельная таблица имеет свое уникальное имя. Тип данных вид информации, разрешенной для хранения в отдельном столбце или строке. Это могут быть числа или текст определенного формата. Столбец и строка — все мы работали с электронными таблицами, в которых также присутствуют строки и столбцы. Любая реляционная база данных работает с таблицами аналогичным образом. Строки иногда называют записями. Первичный ключ — каждая строка таблицы может иметь один или несколько столбцов для ее уникальной идентификации. Без первичного ключа очень трудно производить обновление, изменение и удаление нужных строк.

    Что такое SQL?

    • создание баз и таблиц;
    • выборка данных;
    • добавление записей;
    • модификация и удаление информации.

    Типы данных SQL

    Все столбцы в таблице базы данных хранят один тип данных. Типы данных в SQL такие же, как и в других языках программирования.

    Создаем таблицы и базы данных

    Создавать новые базы, таблицы и другие запросы в SQL можно двумя способами:

    • Операторами SQL через консоль СУБД
    • Используя интерактивные средства администрирования, входящие в состав сервера баз данных.

    Создается новая база данных оператором CREATE DATABASE ; . Как видим, синтаксис прост и лаконичен.

    Таблицы внутри базы данных создаем оператором CREATE TABLE со следующими параметрами:

    • наименование таблицы
    • имена и типы данных столбцов

    В качестве примера создадим таблицу Commodity со следующими столбцами:

    CREATE TABLE Commodity

    (commodity_id CHAR(15) NOT NULL,

    vendor_id CHAR(15) NOT NULL,

    commodity_name CHAR(254) NULL,

    commodity_price DECIMAL(8,2) NULL,

    commodity_desc VARCHAR(1000) NULL);

    Таблица состоит из пяти столбцов. После наименования идет тип данных, столбцы разделяются запятыми. Значение столбца может принимать пустые значения (NULL) или должно быть обязательно заполнено (NOT NULL), и это определяется при создании таблицы.

    Выборка данных из таблицы

    Оператор выборки данных — самые часто используемые SQL запросы. Для получения информации необходимо указать, что мы хотим выбрать из такой таблицы. Вначале простой пример:

    SELECT commodity_name FROM Commodity

    После оператора SELECT указываем имя столбца для получения информации, а FROM определяет таблицу.

    Результатом выполнения запроса будут все строки таблицы со значениями Commodity_name в том порядке, в котором они были внесены в базу данных т.е. без всякой сортировки. Для упорядочивания результата используется дополнительный оператор ORDER BY.

    Для запроса по нескольким полям перечисляем их через запятую, как в следующем примере:

    SELECT commodity_id, commodity_name, commodity_price FROM Commodity

    Есть возможность получить как результат запроса значение всех столбцов строки. Для этого используется знак «*»:

    SELECT * FROM Commodity

    • Дополнительно SELECT поддерживает:
    • Сортировку данных (оператор ORDER BY)
    • Выбор согласно условиям (WHERE)
    • Группировку срок (GROUP BY)

    Добавляем строку

    Для добавления строки в таблицу используются SQL запросы с оператором INSERT. Добавление может производиться тремя способами:

    • добавляем новую целую строку;
    • часть строки;
    • результаты запроса.

    Для добавления полной строки необходимо указать имя таблицы и значения столбцов (полей) новой строки. Приведем пример:

    INSERT INTO Commodity VALUES(«106 «, «50», «Coca-Cola», «1.68», «No Alcogol ,)

    Пример добавляет в таблицу новый товар. Значения указываются после VALUES для каждого столбца. Если нет соответствующего значения для столбца, то необходимо указывать NULL. Столбцы заполняются значениями в порядке, указанном при создании таблицы.

    В случае добавления только части строки необходимо явно указать наименования столбцов, как в примере:

    INSERT INTO Commodity (commodity_id, vendor_id, commodity_name)

    VALUES(«106 «, ‘50», «Coca-Cola»,)

    Мы ввели только идентификаторы товара, поставщика и его наименование, а остальные поля отставили пустыми.

    Добавление результатов запроса

    В основном INSERT используется для добавления строк, но может использоваться и для добавления результатов оператора SELECT.

    Изменение данных

    Для изменения информации в полях таблицы базы данных необходимо использовать оператор UPDATE. Оператор может применяться двумя способами:

    • Обновляются все строки в таблице.
    • Только для определенной строки.

    UPDATE состоит из трех основных элементов:

    • таблица, в которой необходимо производить изменения;
    • имена полей и их новые значения;
    • условия выбора строк для изменения.

    Рассмотрим пример. Допустим, у товара с изменилась стоимость, поэтому эту строку необходимо обновить. Пишем следующий оператор:

    UPDATE Commodity SET commodity_price = «3.2» WHERE commodity_id = «106»

    Мы указали имя таблицы, в нашем случае Commodity, где будет производиться обновление, затем после SET — новое значение столбца и нашли нужную запись, указав в WHERE нужное значение ID.

    Для изменения нескольких столбцов после оператора SET указываются несколько пар столбец-значение, разделенных запятыми. Смотрим пример, в котором обновляется наименование и цена товара:

    UPDATE Commodity SET commodity_name=’Fanta’, commodity_price = «3.2» WHERE commodity_id = «106»

    Для удаления информации в столбце можно присвоить ему значение NULL, если это позволяет структура таблицы. Необходимо помнить, что NULL — это именно «никакое» значение, а не нуль в виде текста или числа. Удалим описание товара:

    UPDATE Commodity SET commodity_desc = NULL WHERE commodity_id = «106»

    Удаление строк

    SQL запросы на удаление строк в таблице выполняются оператором DELETE. Есть два варианта использования:

    • в таблице удаляются определенные строки;
    • удаляются все строки в таблице.

    Пример удаления одной строки из таблицы:

    DELETE FROM Commodity WHERE commodity_id = «106»

    После DELETE FROM указываем имя таблицы, в которой будут удаляться строки. Оператор WHERE содержит условие, по которому будут выбираться строки для удаления. В примере мы удаляем строку товара с Указывать WHERE очень важно т.к. пропуск этого оператора приведт к удалению всех строк в таблице. Это относится и к изменению значения полей.

    В операторе DELETE не указываются наименования столбцов и метасимволы. Он полностью удаляет строки, а удалить отдельный столбец он не может.

    Использование SQL в Microsoft Access

    Обычно используется в интерактивном режиме для создания таблиц, баз данных, для управления, изменения, анализа данных в базе данных и с целью внедрить запросы SQL Access через удобный интерактивный конструктор запросов (Query Designer), используя который можно построить и немедленно выполнить операторов SQL любой сложности.

    Также поддерживается режим доступа к серверу, при котором СУБД Access может использоваться как генератор SQL-запросов к любому ODBC источнику данных. Эта возможность позволяет приложениям Access взаимодействовать с любого формата.

    Расширения SQL

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

    Наиболее распространенные диалекты языка:

    • Oracle Database — PL/SQL
    • Interbase, Firebird — PSQL
    • Microsoft SQL Server — Transact-SQL
    • PostgreSQL — PL/pgSQL.

    SQL в Интернет

    СУБД MySQL распространяется под свободной лицензией GNU General Public License. Имеется коммерческая лицензия с возможностью разработки заказных модулей. Как составная часть входит в наиболее популярные сборки Интернет-серверов, таких как XAMPP, WAMP и LAMP, и является самой популярной СУБД для разработки приложений в сети Интернет.

    Была разработана компанией Sun Microsystems и в настоящий момент поддерживается корпорацией Oracle. Поддерживаются базы данных размером до 64 терабайт, стандарт синтаксиса SQL:2003, репликация баз данных и облачных сервисов.

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

    1. Добавление нового пользователя

    Запускаем программу «Среда SQL Server Management Studio » («Пуск » — «Microsoft SQL Server 2008 R2 » — «Среда SQL Server Management Studio ») .

    В открывшемся окне выбираем:

    • Тип сервера: «Компонент Database Engine » .
    • Имя сервера в формате « \ » , где
      — имя физического компьютера на котором установлен SQL Server (в моем примере «S4 »).
      — задается только в случае подключения к именованному экземпляра SQL Server.
    • Проверка подлинности:«Проверка подлинности SQL Server » или «Проверка подлинности Windows »
    • Имя входа: имя пользователя SQL Server.
    • Пароль: в случае проверки подлинности SQL Server, пароль для выбранного пользователя.

    После чего нажимаем «Соединить » .

    Если все введено верно, в окне «Обозреватель объектов » мы увидим вкладку с именем нашего SQL-сервера. В нем раскрываем вкладку «Безопасность » — «Имена входа » и в контекстном меню выбираем «Создать имя входа » .

    Откроется окно «Создание имени входа » . На вкладке «Общие » заполняем:

    • Имя входа: наименование пользователя SQL.
    • Проверку подлинности выбираем: SQL Server.
    • Придумываем пароль для пользователя.

    (При необходимости можно определить и остальные настройки безопасности). Затем переходим на вкладку «Роли сервера » .

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

    Если создается пользователь для подключения программ или , то достаточно указания ролей

    назначается всем пользователям.

    Указав все необходимые роли для создаваемого пользователя нажимаем «ОК » .

    На этом процедура создания пользователя завершена.

    2. Создание новой базы данных

    Для добавления новой базы данных, в «Среде Microsoft SQL Server Management Studio » кликаем правой кнопкой мышки на вкладке «Базы данных » и выбираем «Создать базу данных » .

    В открывшемся окне «Создание базы данных » на вкладке «Общие » заполняем:

    • Задаем имя базы данных. Имя базы данных не должно начинаться с цифры или иметь пробелы в названии, иначе получим ошибку:
      «неправильный синтаксис около конструкции %имя базы данных%» .
    • В качестве владельца выбираем созданного на предыдущем шаге пользователя.

    Затем переходим на вкладку «Параметры » .

    Здесь необходимо выбрать «Модель восстановления » базы данных и «Уровень совместимости » . Эти параметры зависят от того приложения, которое будет с создаваемой базой данных на SQL сервере. Например для необходимо задать

    • Уровень совместимости: «SQL Server 2000 (80) » .

    Очень внимательно стоит отнестись к параметру «Модель восстановления » создаваемой базы данных. Подробно про модели восстановления баз данных и о том, на что данный параметр влияет, я писал . Если сомневаетесь — выбирайте простую модель восстановления.

    Определившись с параметрами нажимаем «ОК » .

    После чего в списке мы должны увидеть только что созданную базу данных.

    Помогла ли Вам данная статья?

    Аннотация: Определяется процесс создания базы данных. Описываются операторы создания, изменения базы данных. Рассматривается возможность указания имени файла или нескольких файлов для хранения данных, размеров и местоположения файлов. Анализируются операторы создания, изменения, удаления пользовательских таблиц. Приводится описание параметров для объявления столбцов таблицы. Дается понятие и характеристика индексов. Рассматриваются операторы создания и изменения индексов. Определяется роль индексов в повышении эффективности выполнения операторов SQL.

    База данных
    Создание базы данных

    В различных СУБД процедура создания баз данных обычно закрепляется только за администратором баз данных . В однопользовательских системах принимаемая по умолчанию база данных может быть сформирована непосредственно в процессе установки и настройки самой СУБД. Стандарт SQL не определяет, как должны создаваться базы данных , поэтому в каждом из диалектов языка SQL обычно используется свой подход. В соответствии со стандартом SQL, таблицы и другие объекты базы данных существуют в некоторой среде. Помимо всего прочего, каждая среда состоит из одного или более каталогов , а каждый каталог – из набора схем . Схема представляет собой поименованную коллекцию объектов базы данных , некоторым образом связанных друг с другом (все объекты в базе данных должны быть описаны в той или иной схеме ). Объектами схемы могут быть таблицы , представления, домены, утверждения, сопоставления, толкования и наборы символов. Все они имеют одного и того же владельца и множество общих значений, принимаемых по умолчанию.

    Стандарт SQL оставляет за разработчиками СУБД право выбора конкретного механизма создания и уничтожения каталогов , однако механизм создания и удаления схем регламентируется посредством операторов CREATE SCHEMA и DROP SCHEMA . В стандарте также указано, что в рамках оператора создания схемы должна существовать возможность определения диапазона привилегий, доступных пользователям создаваемой схемы . Однако конкретные способы определения подобных привилегий в разных СУБД различаются.

    В настоящее время операторы CREATE SCHEMA и DROP SCHEMA реализованы в очень немногих СУБД. В других реализациях, например, в СУБД MS SQL Server, используется оператор CREATE DATABASE .

    Создание базы данных в среде MS SQL Server

    Процесс создания базы данных в системе SQL-сервера состоит из двух этапов: сначала организуется сама база данных , а затем принадлежащий ей журнал транзакций . Информация размещается в соответствующих файлах, имеющих расширения *.mdf (для базы данных ) и *.ldf . (для журнала транзакций ). В файле базы данных записываются сведения об основных объектах (таблицах , индексах , представлениях и т.д.), а в файле журнала транзакций – о процессе работы с транзакциями (контроль целостности данных, состояния базы данных до и после выполнения транзакций).

    Создание базы данных в системе SQL-сервер осуществляется командой CREATE DATABASE . Следует отметить, что процедура создания базы данных в SQL-сервере требует наличия прав администратора сервера.

    ::= CREATE DATABASE имя_базы_данных [ [. n] ] [, [. n] ] ] [ LOG ON ] [ FOR LOAD | FOR ATTACH ]

    Рассмотрим основные параметры представленного оператора.

    При выборе имени базы данных следует руководствоваться общими правилами именования объектов. Если имя базы данных содержит пробелы или любые другие недопустимые символы, оно заключается в ограничители (двойные кавычки или квадратные скобки). Имя базы данных должно быть уникальным в пределах сервера и не может превышать 128 символов.

    При создании и изменении базы данных можно указать имя файла, который будет для нее создан, изменить имя, путь и исходный размер этого файла. Если в процессе использования базы данных планируется ее размещение на нескольких дисках, то можно создать так называемые вторичные файлы базы данных с расширением *.ndf . В этом случае основная информация о базе данных располагается в первичном (PRIMARY ) файле, а при нехватке для него свободного места добавляемая информация будет размещаться во вторичном файле . Подход, используемый в SQL-сервере, позволяет распределять содержимое базы данных по нескольким дисковым томам.

    Параметр ON определяет список файлов на диске для размещения информации, хранящейся в базе данных .

    Параметр PRIMARY определяет первичный файл . Если он опущен, то первичным является первый файл в списке.

    Параметр LOG ON определяет список файлов на диске для размещения журнала транзакций . Имя файла для журнала транзакций генерируется на основе имени базы данных , и в конце к нему добавляются символы _log .

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

    ::= ([ NAME=логическое_имя_файла,] FILENAME=»физическое_имя_файла» [,SIZE=размер_файла ] [,MAXSIZE= ] [, FILEGROWTH=величина_прироста ])[. n]

    Здесь логическое имя файла – это имя файла, под которым он будет опознаваться при выполнении различных SQL-команд.

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

    Параметр SIZE определяет первоначальный размер файла; минимальный размер параметра – 512 Кб, если он не указан, по умолчанию принимается 1 Мб.

    Параметр MAXSIZE определяет максимальный размер файла базы данных . При значении параметра UNLIMITED максимальный размер базы данных ограничивается свободным местом на диске.

    При создании базы данных можно разрешить или запретить автоматический рост ее размера (это определяется параметром FILEGROWTH ) и указать приращение с помощью абсолютной величины в Мб или процентным соотношением. Значение может быть указано в килобайтах, мегабайтах, гигабайтах, терабайтах или процентах (%). Если указано число без суффикса МБ, КБ или %, то по умолчанию используется значение MБ. Если размер шага роста указан в процентах (%), размер увеличивается на заданную часть в процентах от размера файла. Указанный размер округляется до ближайших 64 КБ.

    Дополнительные файлы могут быть включены в группу:

    ::=FILEGROUP имя_группы_файлов [. n]

    Пример 3.1 . Создать базу данных , причем для данных определить три файла на диске C, для журнала транзакций – два файла на диске C.

    CREATE DATABASE Archive ON PRIMARY (NAME=Arch1, FILENAME=’c:\user\data\archdat1.mdf’, SIZE=100MB, MAXSIZE=200, FILEGROWTH=20), (NAME=Arch2, FILENAME=’c:\user\data\archdat2.mdf’, SIZE=100MB, MAXSIZE=200, FILEGROWTH=20), (NAME=Arch3, FILENAME=’c:\user\data\archdat3.mdf’, SIZE=100MB, MAXSIZE=200, FILEGROWTH=20) LOG ON (NAME=Archlog1, FILENAME=’c:\user\data\archlog1.ldf’, SIZE=100MB, MAXSIZE=200, FILEGROWTH=20), (NAME=Archlog2, FILENAME=’c:\user\data\archlog2.ldf’, SIZE=100MB, MAXSIZE=200, FILEGROWTH=20) Пример 3.1. Создание базы данных.

    4.4.4. Соединение с сервером SQL и создание базы данных

    Создание нового зарегистрированного сервера (среда SQL Server Management Studio)

    В этой статье описывается, как сохранить сведения о подключении для серверов, к которым часто выполняется обращение, путем регистрации сервера в компоненте «Зарегистрированные серверы» среды SQL Server Management Studio в SQL Server. Сервер может быть зарегистрирован в обозревателе объектов до или во время подключения. Для регистрации экземпляра сервера на локальном компьютере существует специальный пункт меню.

    Существует два вида зарегистрированных серверов.

    Группы локальных серверов

    Группы локальных серверов можно использовать для простого подключения к серверам, которыми пользователь часто управляет. И локальные, и нелокальные серверы регистрируются в группах локальных серверов. Группы локальных серверов уникальны для каждого пользователя. Сведения о том, как обмениваться сведениями о зарегистрированном сервере, см. в разделах Экспорт сведений компонента «Зарегистрированные серверы» (среда SQL Server Management Studio) и Импорт сведений компонента «Зарегистрированные серверы» (среда SQL Server Management Studio).

    Рекомендуется использовать проверку подлинности Windows.

    Центральные серверы управления

    Центральные серверы управления сохраняют регистрации серверов на центральном сервере управления, а не в файловой системе. Центральные серверы управления и подчиненные зарегистрированные серверы могут быть зарегистрированы только с помощью проверки подлинности Windows. После регистрации центральных серверов управления связанные с ним зарегистрированные серверы будут отображены автоматически. Дополнительные сведения о центральных серверах управления в разделе Администрирование нескольких серверов с помощью центральных серверов управления. Версии SQL Server ранее SQL Server 2008 нельзя назначить в качестве сервера централизованного управления.

    4.4.4. Соединение с сервером SQL и создание базы данных

    1) Запустить задачу: «Пуск» → «Все программы» → «Microsoft SQL Server 2008» → «Среда SQL Server Management Studio».

    2) В окне «Соединение с сервером» в выпадающем списке «Имя сервера» выбрать строку « ». (при этом «Тип сервера» должен быть – «Компонент Database Engine», а «Проверка подлинности» -«Проверка подлинности Windows»)

    3) В окне «Выбор серверов» на вкладке «Локальные серверы» в разделе «Компонент Database Engine» должно отобразиться имя Вашего локального сервера (совпадает с именем компьютера). Выбрать данный сервер и нажать кнопку «ОК».

    В случае если среда «SQL Server Management Studio» устанавливалась на другой компьютер, сервер следует выбирать на вкладке «Сетевые серверы».

    4) В окне «Соединение с сервером» (см. Рис. 4.35) нажать кнопку «Соединить». После удачного соединения в «Обозревателе объектов» отобразится структура объектов Вашего сервера.

    1) В «Обозревателе объектов» кликнуть правой клавишей мыши по строке «Базы данных» и выбрать пункт меню «Создать базу данных…».

    2) В окне «Создание базы данных» задать имя базы данных и нажать кнопку «ОК». Выйти из задачи «Среда SQL Server Management Studio».

    Как создать локальную базу данных внутри Microsoft SQL Server 2014?

    Я только что установил Microsoft SQL Server Management Studio 2014. Я хочу создать базу данных, чтобы я мог начать создавать некоторые таблицы с нуля. Все, что я получаю-это возможность подключения к базе данных. Не создавать новую базу данных.

    согласно комментариям, сначала вам нужно установить экземпляр SQL Server, если у вас его еще нет -https://msdn.microsoft.com/en-us/library/ms143219.aspx

    после установки вы должны подключиться к этому экземпляру (серверу), а затем вы можете создать базу данных здесь -https://msdn.microsoft.com/en-US/library/ms186312.aspx

    предупреждение! SQL Server 14 Express, SQL Server Management Studio и SQL 2014 LocalDB являются отдельными загрузками, убедитесь, что вы действительно установили SQL Server, а не только Management Studio! SQL Server 14 express с LocalDB ссылка для скачивания

    на YouTube видео обо всем процессе.
    рецензия С фотографиями об установке SQL Server

    как выбрать локальный сервер:

    когда вас попросят подключиться к «серверу баз данных» прямо при открытии SQL Server Management Studio, сделайте следующее:

    1) убедитесь, что у вас есть тип сервера: Database

    2) убедитесь, что у вас есть аутентификация: аутентификация Windows (без имени пользователя и пароля)

    3) в поле «имя сервера» справа и выберите стрелку раскрывающегося списка, нажмите кнопку ‘Обзор’

    4) появляется новое окно «Поиск серверов», обязательно выберите вкладку «локальные серверы» и в разделе «компонент Database Engine» у вас будет локальный сервер, настроенный во время установки SQL Server 14

    как создать локальную базу данных внутри Microsoft SQL Server 2014?

    1) после подключения к серверу откройте Панель инструментов обозревателя объектов в разделе » вид » (должна открыться по умолчанию)

    2) теперь просто щелкните правой кнопкой мыши на «базы данных», а затем «создать новую базу данных», чтобы принять через инструменты создания базы данных!

    Настройка удаленного подключения

    При использовании сервера БД на отдельном сервере необходимо сконфигурировать сетевые протоколы, по которым будет подключаться Oktell. Настройка производится при помощи SQL Server Configuration Manager (Диспетчер конфигурации SQL Server).

    1. Перейдите в раздел «Сетевая конфигурация SQL Server» для 64-битной версии SQL Server. Если у вас 32-битная версия откройте вкладку «Сетевая конфигурация SQL Server (32-разрядная версия)».

    2. Откройте «Протоколы для Oktell». Выберите протокол TCP/IP.

    3. На первой вкладке «Протокол» установите следующие опции:

    • Включено — Да
    • Прослушивать все — Нет.

    Sql2012-020.png

    4. На второй вкладке «IP-адреса» выберите необходимый интерфейс и установите для него следующие опции:

    • TCP-порт — как правило, используется 1433.

    ВНИМАНИЕ: Проверьте не занят ли порт другой программой. Для этого выполните в командной строке netstat -anopb tcp. Если порт уже занят, назначьте другой порт или выключите занимаемый процесс.

    Sql2012-021.png

    5. Перезагрузите службу SQl-сервера. Сделать это можно через раздел «Службы SQL Server«, далее в контекстном меню службы «SQL Server (OKTELL)» выберите «Перезапустить«

    Sql2012-022.png

    Как создать новый локальный сервер MS SQL?

    Здравствуйте!
    У меня MS SQL 2014. Подскажите пожалуйста, как создать новый локальный сервер. Хотя бы ссылку киньте, ато ничего не найду. Есть инфа про регистрацию, управление серверами через главные и т. д. и т. п., а мне тупо просто надо сервер создать новый. Как ничего не найду. Спасибо!

    Добавлено через 34 минуты
    может новый сервер это новый экзмепляр MSSQL?

    Добавлено через 7 минут
    и что такое лицензионный сервер.

    Добавлено через 26 минут
    В общем, у меня установлен mssql, но там имя сервака как у компа, а мне для программульки нужна база данных и чтоб эту базу вместе с программкой запускать на других компах и имени моего сервера не было. как это сделать? я представляю это в виде сервера с ролями пользователей — админами, пользователями и т. п. не правильно?

    Основы администрирования SQL Server

    Перед тем, как запустить MS SQL Server , нужно кратко ознакомиться с основными возможностями его настройки и администрирования. Начнем с более детального обзора нескольких утилит из состава СУБД :

    • SQL Server Surface Area Configuration – сюда следует обращаться, если нужно включить или отключить какую-либо возможность сервера баз данных. Внизу окна находятся два пункта: первый отвечает за сетевые параметры, а во втором можно активировать выключенную по умолчанию службу или функцию. Например, включить интеграцию с платформой .NET через запросы T-SQL :

    Основы администрирования SQL Server

    • SQL Server Management Studio – является основным средством администрирования. В этой среде реализована возможность настройки сервера и баз данных, как через интерфейс приложения, так и с помощью запросов на языке T-SQL .

    Основные настройки можно осуществить через « Обозреватель объектов », отображающий слева в окне приложения все основные элементы сервера в виде древовидного списка. Самой важной является вкладка « Безопасность ». Через нее можно настроить права и роли пользователей и администраторов для основного сервера, или отдельно для каждой базы данных:

    Основы администрирования SQL Server - 2

    Основная часть настроек сервера баз данных доступна в окне « Свойства сервера »:

    Как видите, Microsoft SQL Server является настолько мощным средством для структуризации, хранения и модификации данных, что на его изучение потребуется много времени. А в статье мы лишь слегка углубились в основы сервера SQL .

    Похожие публикации:

    1. Collation sql server что это
    2. Identity specification sql что это
    3. Microsoft sql server 2012 native client что это
    4. Ms sql named pipes что это

    SQL Server. Создание базы данных, таблиц и связей между ними

    В этой статье мы научимся работать с основными объектами базы данных — таблицами, в которых хранится вся информация баз данных.

    База данных представляет собой хранилище объектов. Основные из них:

    • Таблицы: хранят данные
    • Представления (Views): выражения языка SQL, которые возвращают набор данных в виде таблицы
    • Хранимые процедуры: выполняют код на языке SQL по отношению к данным к БД (например, получает данные или изменяет их)
    • Функции: также код SQL, который выполняет определенную задачу

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

    Системные базы данных

    В MS SQL Server по умолчанию создается четыре системных баз данных:

    • master: эта главная база данных сервера, в случае ее отсутствия или повреждения сервер не сможет работать. Она хранит все используемые логины пользователей сервера, их роли, различные конфигурационные настройки, имена и информацию о базах данных, которые хранятся на сервере, а также ряд другой информации.
    • model: эта база данных представляет шаблон, на основе которого создаются другие базы данных. То есть когда мы создаем через SSMS свою бд, она создается как копия базы model.
    • msdb: хранит информацию о работе, выполняемой таким компонентом как планировщик SQL. Также она хранит информацию о бекапах баз данных.
    • tempdb: эта база данных используется как хранилище для временных объектов. Она заново пересоздается при каждом запуске сервера.

    Все эти базы можно увидеть через SQL Server Management Studio в узле Databases -> System Databases:

    Эти базы данных не следует изменять, за исключением бд model.

    Если на этапе установки сервера был выбран и установлен компонент PolyBase, то также на сервере по умолчанию будут расположены еще три базы данных, которые используется этим компонентом: DWConfiguration, DWDiagnostics, DWQueue.

    Создание базы данных в SQL Management Studio

    Теперь создадим свою базу данных. Для этого мы можем использовать скрипт на языке SQL, либо все сделать с помощью графических средств в SQL Management Studio.

    В данном случае мы выберем второй способ. Для этого откроем SQL Server Management Studio и нажмем правой кнопкой мыши на узел Базы данных. Затем в появившемся контекстном меню выберем пункт Создать базу данных:

    После этого нам открывается окно для создания базы данных:

    В поле Имя базы данных необходимо ввести название новой бд. Следующее поле «Владелец» задает владельца базы данных. По умолчанию оно имеет значение , то есть владельцем будет тот, кто создает эту базу данных. Оставим все как есть.

    Далее идет таблица для установки общих настроек базы данных. Она содержит две строки — первая для установки настроек для главного файла, где будут храниться данные, и вторая строка для конфигурации файла логирования. В частности, мы можем установить следующие настройки:

    • Логическое имя: логическое имя, которое присваивается файлу базы данных.
    • Тип файла: есть несколько типов файлов, но, как правило, основная работа ведется с файлами данных (ROWS Data) и файлом лога (LOG)
    • Файловая группа: означает группу файлов. Группа файлов может хранить множество файлов и может использоваться для разбиения базы данных на части для размещения в разных местах.
    • Начальный размер (MБ): устанавливает начальный размер файлов при создании (фактический размер может отличаться от этого значения).
    • Автоувеличение/Максимальный размер: при достижении базой данных начального размера SQL Server использует это значение для увеличения файла.
    • Путь: каталог, где будут храниться базы данных.
    • Имя файла: непосредственное имя физического файла. Если оно не указано, то применяется логическое имя.

    После ввода названия базы данных нажмем на кнопку ОК, и бд будет создана.

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

    Создание таблиц, отношения таблиц, внешние ключи

    Ключевым объектом в базе данных являются таблицы. Таблицы состоят из строк и столбцов. Столбцы определяют тип информации, которая хранится, а строки содержат значения для этих столбцов.

    Типы данных SQL SERVER

    • для строк лучше всего использовать nvarchar (ни в коем случае не используйте nchar, при этом длина строки строго зафиксирована и не зависит от содержимого — т.е. сложно потом будет сравнивать строки, т.к. они будут дополняться ненужными нам пробелами). Если поле очень большое, то лучше использовать nvarchar(MAX) или text, но при этом размер должен быть адекватным, чтобы не замедлять работу в дальнейшем
    • для чисел используйте int, float . Важный момент — не нужно всех поражать своим знанием типов и использовать long там, где можно использовать int. Это в дальнейшем немного усложнит обработку таких значений в C# (т.е. по возможности не удивляйте своих коллег такими моментами, лучше удивите их быстрыми запросами SQL)
    • булевский тип — bit
    • деньги храните либо в типе money, либо в decimal (18,2) , либо в банке
    • дата и время – тип datetime . Важный момент – изучите различные функции работы с датами (getdate, datediff, dateadd и др) – это будет часто встречаться
    • очень важный тип – это uniqueidentifier . Это GUID – уникальный 32-битный код. Его особенность в том, что каждое новое значение — уникально (вероятность дубля критически мала). Идентификаторы GUID в первую очередь используются для назначения идентификаторов, которые должны быть уникальными в рамках сети, содержащей много компьютеров в различных расположениях. Значение идентификатора GUID для столбца uniqueidentifier формируется с помощью функции newid() .

    В прошлой теме была создана база данных university. Теперь определим в ней первую таблицу. Опять же для создания таблицы в SQL Server Management Studio можно применить скрипт на языке SQL, либо воспользоваться графическим дизайнером. В данном случае выберем второе.

    Для этого раскроем узел базы данных university в SQL Server Management Studio, нажмем на его подузел Таблицы правой кнопкой мыши и далее в контекстном меню выберем Создать -> Таблица.

    После этого нам откроется дизайнер таблицы. В центральной части в таблице необходимо ввести данные о столбцах таблицы. Дизайнер содержит три поля:

    • Имя столбца: имя столбца
    • Тип данных: тип данных столбца. Тип данных определяет, какие данные могут храниться в этом столбце. Например, если столбец представляет числовой тип, то он может хранить только числа.
    • Разрешить значения Null: может ли отсутствовать значение у столбца, то есть может ли он быть пустым

    Допустим, нам надо создать таблицу с данными учащихся в учебном заведении. Для этого в дизайнере таблицы четыре столбца: Id, FirstName, LastName и Year, которые будут представлять соответственно уникальный идентификатор пользователя, его имя, фамилию и год рождения. У первого и четвертого столбца надо указать тип int (то есть целочисленный), а у столбцов FirstName и LastName — тип nvarchar(50) (строковый).

    Затем в окне Properties, которая содержит свойства таблицы, в поле Name надо ввести имя таблицы — Students, а в поле Identity ввести Id, то есть тем самым указывая, что столбец Id будет идентификатором.

    Имя таблицы должно быть уникальным в рамках базы данных. Как правило, название таблицы отражает название сущности, которая в ней хранится. Например, мы хотим сохранить студентов, поэтому таблица называется Students (слово студент во множественном числе на английском языке). Существуют разные мнения по поводу того, стоит использовать название сущности в единственном или множественном числе (Student или Students). В данном случае вопрос наименования таблицы всецело ложится на разработчика базы данных.

    И в конце нам надо отметить, что столбец Id будет выполнять роль первичного ключа (primary key). Первичный ключ уникально идентифицирует каждую строку. В роли первичного ключа может выступать один столбец, а может и несколько.

    Для установки первичного ключа нажмем на столбец Id правой кнопкой мыши и в появившемся меню выберем пункт Задать первичный ключ.

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

    И после сохранения в базе данных university появится таблица Students:

    Мы можем заметить, что название таблицы на самом деле начинается с префикса dbo. Этот префикс представляет схему. Схема определяет контейнер, который хранит объекты. То есть схема логически разграничивает базы данных. Если схема явным образом не указывается при создании объекта, то объект принадлежит схеме по умолчанию — схеме dbo.

    Нажмем правой кнопкой мыши на название таблицы, и нам отобразится контекстное меню с опциями:

    С помощью этих опций можно управлять таблицей. Так, опция Delete позволяет удалить таблицу. Опция Design откроет окно дизайнера таблицы, где мы можем при необходимости внести изменения в ее структуру.

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

    Создание таблиц и связей между ними с помощью диаграмм

    В SSMS есть удобный графический инструмент для создания таблиц, а также для установки связей между ними — это диаграммы. Правой клавишей кликаем на пункт “диаграммы баз данных”, далее выбираем “создать диаграмму базы данных”

    Далее может появиться вот такое сообщение (т.к. таблиц пока нет) :

    Нажимаем “да” и видим следующее окно:

    После этого кликаем правой кнопкой мышки по экрану и выбираем пункт “создать таблицу”:

    Задаем название таблицы:

    После создания таблицы добавляем колонки таблицы, указав их тип:

    Добавляем первичный ключ (primary key). Для этого кликаем правой кнопкой мышки на поле рядом с названием “id” и выбираем “задать первичный ключ”:, рядом с “id” появится золотой ключик.

    После перемещаемся на правую панель:

    Здесь мы меняем значение на “да” (если нужно чтоб у id был автоинкремент, выбираем начальное значение “id”, а также шаг автоинкремента).

    Таким образом создаем нужные таблицы. Таблицы можно менять местами, увеличивать или отдалять.

    Несколько слов о связях между таблицами.

    Выделяют следующие типы связей:

    • один к одному
    • один ко многим
    • многие ко многим

    Связь один к одному : встречается не часто, объекту одной сущности соответствует один объект другой сущности (пример: один пользователь один блог). Иными словами первичный ключ зависимой таблицы в то же время является внешним ключом, который ссылается на первичный ключ из главной таблицы.

    Связь один ко многим : самый часто встречающийся тип связей. Несколько строк из зависимой (дочерней) таблицы зависят от одной строки главной (родительской) таблицы. Пример: в одной группе много студентов.

    Связь многие ко многим : одна строка из одной таблицы (А) может быть связана со множеством строк из другой таблицы (Б). В свою очередь одна строка из таблицы Б может быть связана со множеством строк из таблицы А. Однако в SQL server нельзя установить связь многие ко многим между двумя таблицами. Это можно сделать с помощью вспомогательной промежуточной таблицы (иногда данные из этой таблицы представляют как отдельную сущность).

    Теперь задаем связи между таблицами. Для этого в таблице, где есть внешний ключ (foreign key) нажимаем левой кнопкой мышки на поле рядом с названием внешнего ключа и не отпуская тянем на вторую таблицу к полю “id”

    Отпускаем кнопку на этом поле и появляется окно:

    выбираем “ОК”, а затем еще раз “ОК”.

    В итоге у нас появляется связь между двумя таблицами:

    В итоге мы научились добавлять таблицы, связывать и создавать столбцы.

    Дополнительные материалы

    1. Наиболее часто используемые функции в SQL Server 2005/2008
    2. Проблема с доступом к таблице БД
    3. Пример создания структуры базы данных
    4. Создание структуры БД через диаграммы
    5. Как массово залить данные в таблицу БД через CSV (Excel)

    Добавить картинку в sql таблицу?

    48d2e39547e544df926dcc296c387500.JPG

    Есть бд с именем ProductPicture
    нужно запросом заполнить поле Picture которое содержит в себе двоичный массив картинки. Пытаюсь таким вот запросом

    UPDATE ProductPicture SET ProductPicture.Picture = CONVERT(varbinary(MAX), 'C:\1.jpg')

    но далее следует сообщение об успешно выполнимом запросе но бд по прежнему пуста.
    Вопрос: как мне из sql managemet загрузить в ячейку файл(картинку)?

    • Вопрос задан более трёх лет назад
    • 21895 просмотров

    Комментировать

    Решения вопроса 1

    tsklab

    Константин Цветков @tsklab Куратор тега Transact-SQL

    Здесь отвечаю на вопросы.

    OPENROWSET.
    Решение автора вопроса:
    UPDATE

    UPDATE PictureProduct SET Picture = (SELECT * FROM OPENROWSET(BULK N'C:\1.jpg', SINGLE_BLOB) AS image) WHERE >INSERT
    INSERT INTO PictureProduct (Id, IdProduct, Picture) SELECT 8, 4, BulkColumn FROM Openrowset( Bulk 'C:\2.jpeg', Single_Blob) as image

    Ответ написан более трёх лет назад

    Нравится 3 1 комментарий

    JoraInTheSky @JoraInTheSky Автор вопроса

    Благодарю за помощь.
    Можете вставить в свой ответ, я отмечу как решение вопроса, возможно кому-то пригодится:
    UPDATE

    UPDATE PictureProduct SET Picture = (SELECT * FROM OPENROWSET(BULK N'C:\1.jpg', SINGLE_BLOB) AS image) WHERE > INSERT
    INSERT INTO PictureProduct (Id, IdProduct, Picture) SELECT 8, 4, BulkColumn FROM Openrowset( Bulk 'C:\2.jpeg', Single_Blob) as image

    Ответы на вопрос 0

    Ваш ответ на вопрос

    Войдите, чтобы написать ответ

    sql

    • SQL
    • +1 ещё

    MS SQL, почему медленно выполняется запрос когда передаю много параметров?

    • 1 подписчик
    • 30 мая
    • 84 просмотра

    Как добавить бд в sql server

    В прошлой теме была создана база данных, теперь подключимся к ней из приложения. В любом проекте WPF, как и в ряде других типов проектов для .NET, по умолчанию есть файл конфигурации, который называется app.config и который имеет следующее содержимое:

    Добавим в него строку подключения к бд, изменив файл следующим образом:

    Для определения всех подключений в программе в пределах узла добавляется новый узел . В этом узле определяются строки подключения с помощью элемента . Каждая строка подключения имеет название, определяемое с помощью атрибута name . В данном случае строка подключения называется «DefaultConnection». Название может быть произвольное.

    Атрибут connectionString собственно хранит строку подключения. Он состоит из трех частей:

    • Data Source=.\SQLEXPRESS : указывает на название сервера. По умолчанию для MS SQL Server Express используется «.\SQLEXPRESS»
    • Initial Catalog=mobiledb : название базы данных. Так как база данных называется mobiledb, то соответственно здесь данное название и указываем
    • Integrated Security=True : задает режим аутентификации

    Так как мы будем подключаться к базе данных MS SQL Server, то соответственно мы будем использовать провайдер для SQL Server, функциональность которого заключена в пространстве имен System.Data.SqlClient.

    Далее определим код графического интерфейса в xaml:

              " Header="Модель" Width="120"/> " Header="Производитель" Width="125"/> " Header="Цена" Width="80"/>       

    Здесь определен довольно простой интерфейс: датагрид для отображения данных, и две кнопки для обновления данных в бд и для удаления. В итоге приложение будет выглядеть следующим образом:

    Теперь определим код подключения и все обработчики кнопок в файле кода c#:

    using System; using System.Windows; using System.Windows.Controls; using System.Data.SqlClient; using System.Data; using System.Configuration; namespace DbApp < public partial class MainWindow : Window < string connectionString; SqlDataAdapter adapter; DataTable phonesTable; public MainWindow() < InitializeComponent(); // получаем строку подключения из app.config connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; >private void Window_Loaded(object sender, RoutedEventArgs e) < string sql = "SELECT * FROM Phones"; phonesTable = new DataTable(); SqlConnection connection=null; try < connection = new SqlConnection(connectionString); SqlCommand command = new SqlCommand(sql, connection); adapter = new SqlDataAdapter(command); // установка команды на добавление для вызова хранимой процедуры adapter.InsertCommand = new SqlCommand("sp_InsertPhone", connection); adapter.InsertCommand.CommandType = CommandType.StoredProcedure; adapter.InsertCommand.Parameters.Add(new SqlParameter("@title", SqlDbType.NVarChar, 50, "Title")); adapter.InsertCommand.Parameters.Add(new SqlParameter("@company", SqlDbType.NVarChar, 50, "Company")); adapter.InsertCommand.Parameters.Add(new SqlParameter("@price", SqlDbType.Int, 0, "Price")); SqlParameter parameter = adapter.InsertCommand.Parameters.Add("@Id", SqlDbType.Int, 0, "Id"); parameter.Direction = ParameterDirection.Output; connection.Open(); adapter.Fill(phonesTable); phonesGrid.ItemsSource = phonesTable.DefaultView; >catch(Exception ex) < MessageBox.Show(ex.Message); >finally < if(connection!=null) connection.Close(); >> private void UpdateDB() < SqlCommandBuilder comandbuilder = new SqlCommandBuilder(adapter); adapter.Update(phonesTable); >private void updateButton_Click(object sender, RoutedEventArgs e) < UpdateDB(); >private void deleteButton_Click(object sender, RoutedEventArgs e) < if (phonesGrid.SelectedItems != null) < for (int i = 0; i < phonesGrid.SelectedItems.Count; i++) < DataRowView datarowView = phonesGrid.SelectedItems[i] as DataRowView; if (datarowView != null) < DataRow dataRow = (DataRow)datarowView.Row; dataRow.Delete(); >> > UpdateDB(); > > >

    Вся работа с бд производится стандартными средствами ADO.NET и прежде всего классом SqlDataAdapter. Вначале мы получаем в конструкторе строку подключения, которая определена выше в файле app.config:

    connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

    Чтобы задействовать эту функциональность, нам надо добавить в проект библиотеку System.Configuration.dll .

    Далее в обработчике загрузки окна Window_Loaded создаем объект SqlDataAdapter:

    adapter = new SqlDataAdapter(command);

    В качестве команды для добавления объекта устанавливаем ссылку на хранимую процедуру:

    adapter.InsertCommand = new SqlCommand("sp_InsertPhone", connection);

    Получаем данные из БД и осуществляем привязку:

    adapter.Fill(phonesTable); phonesGrid.ItemsSource = phonesTable.DefaultView;

    За обновление отвечает метод UpdateDB() :

    private void UpdateDB()

    Чтобы обновить данные через SqlDataAdapter, нам нужна команда обновления, которую можно получить с помощью объекта SqlCommandBuilder. Для самого обновления вызывается метод adapter.Update() .

    Причем не важно, что мы делаем в программе — добавляем, редактируем или удаляем строки. Метод adapter.Update сделает все необходимые действия. Дело в том, что при загрузке данных в объект DataTable система отслеживает состояние загруженных строк. В методе adapter.Update() состояние строк используется для генерации нужных выражений языка SQL, чтобы выполнить обновление базы данных. Более подробно про обновление с помощью адаптеров данных можно почитать здесь: Обновление БД из DataSet вручную

    В обработчике кнопки обновления просто вызывается этот метод UpdateDB, а в обработчике кнопки удаления предварительно удаляются все выделенные строки.

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

    Причем важно отметить действие хранимой процедуры — при добавлении нового объекта данные уходят на сервер, и процедура возвращает нам id добавленной записи. Этот id играет большую роль при генерации нужного sql-выражения, если мы захотим эту запись изменить или удалить. И если бы не хранимая процедура, то нам пришлось бы после добавления данных загружать заново всю таблицу в datagrid, только чтобы у новой добавленной записи был в datagrid id. И хранимая процедура избавляет нас от этой работы.

    Также здесь мы могли бы выполнять обновление данных сразу после редактирования строки. Для этого нужно задействовать событие RowEditEnding элемента DataGrid:

    public MainWindow() < InitializeComponent(); connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; phonesGrid.RowEditEnding += PhonesGrid_RowEditEnding; >private void PhonesGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)

    И если после окончания редактирования мы нажмем на Enter, то срабатает обработчик события RowEditEnding, который обновит базу данных.

    Итак, здесь рассмотрен простейший способ работы с базой данных в WPF. Далее мы рассмотрим еще один способ, который подразумевает применение технологии Entity Framework.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *