Подключение баз данных SQL Server
В этом разделе описывается процедура подключения базы данных в SQL Server с помощью среды SQL Server Management Studio. Одновременно может быть подключена только одна база данных.
Для подключения базы данных необходимо иметь любое из следующих разрешений: CREATE DATABASE (Создание базы данных), CREATE ANY DATABASE (Создание любой базы данных) или ALTER ANY DATABASE (Изменение любой базы данных). Обычно эти разрешения предоставляются роли sysadmin экземпляра.
Как подключить базу данных
- Запустите среду Microsoft SQL Server Management Studio.
- Подключитесь к требуемому экземпляру SQL Server и разверните его.
- Правой кнопкой мыши щелкните пункт Базы данных и щелкните Подключить .
- Нажмите кнопку Добавить .
- В диалоговом окне Поиск файлов баз данных найдите и выберите MDF-файл базы данных.
- В разделе Сведения о базе данных убедитесь, что остальные файлы базы данных (NDB-файлы и LDF-файлы) также найдены. Подробнее. Файлы базы данных SQL Server могут быть не найдены автоматически, если:
- Они находятся в расположении, отличном от расположения по умолчанию, или они не находятся в одной папке с основным файлом базы данных (MDF). Решение: Укажите путь к требуемым файлам вручную в столбце Путь к текущему файлу .
- Вы восстановили неполный набор файлов, составляющих базу данных. Решение: Восстановите отсутствующие файлы базы данных SQL Server из резервной копии.
- Когда все файлы будут найдены, нажмите кнопку ОК .
Дата последней сборки: 6 марта 2023 г.
Веб-справка по Acronis Cyber Protect 15 Обновление 6 . © Acronis International GmbH, 2003-2023
Как подключить ms sql к c
Для работы с базой данных MS SQL Server в .NET 5 и выше (а также .NET Core 3.0/3.1) необходимо установить в проект через nuget пакет Microsoft.Data.SqlClient :

Для создания подключения к MS SQL Server применяется класс SqlConnection из пространства имен Microsoft.Data.SqlClient.
Этот класс имеет три конструктора:
SqlConnection() SqlConnection(String) SqlConnection(String, SqlCredential)
Второй и третий конструкторы в качестве первого параметра принимают строку подключения. Третий конструктор также принимает объект SqlCredential , который фактически представляет логин и пароль.
Теперь проверим подключение на примере сервера LocalDB:
using Microsoft.Data.SqlClient; using System; using System.Data; using System.Threading.Tasks; namespace HelloApp < class Program < static async Task Main(string[] args) < string connectionString = "Server=(localdb)\\mssqllocaldb;Database=master;Trusted_Connection=True;"; // Создание подключения SqlConnection connection = new SqlConnection(connectionString); try < // Открываем подключение await connection.OpenAsync(); Console.WriteLine("Подключение открыто"); >catch (SqlException ex) < Console.WriteLine(ex.Message); >finally < // если подключение открыто if (connection.State == ConnectionState.Open) < // закрываем подключение await connection.CloseAsync(); Console.WriteLine("Подключение закрыто. "); >> Console.WriteLine("Программа завершила работу."); Console.Read(); > > >
В данном случае подключение осуществляется к серверу LocalDB и его базе данных master (по умолчанию база данных master уже должна быть на любом MS SQL Servere).
Для начала взаимодействия с базой данных нам надо открыть подключение с помощью методов Open() (синхронный) или OpenAsync() (асинхронный).
По окончании работы с SqlConnection необходимо закрыть подключение к серверу, вызвав метод Close()/CloseAsync() или Dispose()/DisposeAsync() . В данном случае вначале проверяем, что подключение открыто и, если оно открыто, вызываем асинхронный метод OpenAsync() .
В итоге, если указана валидная строка подключения, то мы должны увидеть на консоли следующие строки:
Подключение открыто Подключение закрыто. Программа завершила работу.
Вместо явного закрытия подключения также можно использовать конструкцию using , которая автоматически закрывает подключение:
using Microsoft.Data.SqlClient; using System; using System.Threading.Tasks; namespace HelloApp < class Program < static async Task Main(string[] args) < string connectionString = "Server=(localdb)\\mssqllocaldb;Database=master;Trusted_Connection=True;"; using(SqlConnection connection = new SqlConnection(connectionString)) < await connection.OpenAsync(); Console.WriteLine("Подключение открыто"); >Console.WriteLine("Подключение закрыто. "); Console.WriteLine("Программа завершила работу."); Console.Read(); > > >
Получение информации о подключении
Объект SqlConnection обладает рядом свойств, которые позволяют получить информацию о подключении:
using Microsoft.Data.SqlClient; using System; using System.Threading.Tasks; namespace HelloApp < class Program < static async Task Main(string[] args) < string connectionString = "Server=(localdb)\\mssqllocaldb;Database=master;Trusted_Connection=True;"; using(SqlConnection connection = new SqlConnection(connectionString)) < await connection.OpenAsync(); Console.WriteLine("Подключение открыто"); // Вывод информации о подключении Console.WriteLine("Свойства подключения:"); Console.WriteLine($"\tСтрока подключения: "); Console.WriteLine($"\tБаза данных: "); Console.WriteLine($"\tСервер: "); Console.WriteLine($"\tВерсия сервера: "); Console.WriteLine($"\tСостояние: "); Console.WriteLine($"\tWorkstationld: "); > Console.WriteLine("Подключение закрыто. "); Console.WriteLine("Программа завершила работу."); Console.Read(); > > >
Подключение открыто Свойства подключения: Строка подключения: База данных: master Сервер: (localdb)\mssqllocaldb Версия сервера: 15.00.2000 Состояние: Open WorkstationId: EUGENEPC Подключение закрыто. Программа завершила работу.
Подключение к SQL Server на C# для чайника
Visual Studio 2012 Ultimate поставил, вместе с ней поставился SQL Server 2012.
Итак. Задача: подключиться к SQL Server, создать новую локальную базу данных, выполнить скрипт создания базы из файла «database.sql» (создание таблиц, процедур и т. п.).
SqlConnection sqlConnection = new SqlConnection(); sqlConnection = new SqlConnection("Data Source=localhost; Integrated Security=SSPI; Initial Catalog=testdb;"); sqlConnection.Open(); MyClass.scriptExecute(sqlConnection, "database.sql"); sqlConnection.Close(); sqlConnection.Dispose();
Проблема: судя по всему, в строке подключения, а скорее всего — в имени сервера. Объясните на пальцах, пожалуйста, что там писать? В голове каша, не понимаю ни фига.
Перепробовал варианты названия сервера с MSDN и ConnectionString — все время какие-то ошибки. Варианты: localhost, (localhost), (local), localdb, (localdb), (localdb)\v.11, еще какие-то были, и уже совершенно запутался в них всех. Есть варианты подключения к Server Instance — это что еще за хрень? Тоже не пойму.
Как мне объяснили, логин-пароль указывать не надо при создании базы, кажется, используется аутенфикация Windows, но я опять же толком не понял о чем речь. Спасибо всем за помощь.
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 .

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

Создание новой базы данных
Новую базу данных вы можете создать через раздел Услуги, в Личном кабинете. Выберите нужную «виртуальную площадку», далее в разделе «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 и разверните его.
- Разверните узел «Базы данных», затем правой кнопкой мыши щелкните базу данных, которую нужно сжать.
- В меню «Задачи» выберите «Сжать» и щелкните «База данных». Или установите флажок «Реорганизовать файлы перед освобождением неиспользуемого места». Если он установлен, необходимо указать значение параметра «Максимально доступное свободное место в файлах после сжатия».
DBCC SHRINKFILE (N'uXXXXXX.Log' , 0, TRUNCATEONLY) DBCC SHRINKDATABASE (N'uXXXXXX')Изменение кодировки сравнения (collation)
По умолчанию кодировка collation выставлена как Cyrillic_General_CI_AS, изменить кодировку для сравнений можно следующим SQL-запросом:
ALTER DATABASE [uXXXXX] COLLATE SQL_Latin1_General_CP1251_CS_AS GOгде uXXXXX — имя БД, где требуется данная операция.
Список доступных кодировок можно узнать так:
SELECT * FROM ::fn_helpcollations()Как дать права на доступ к базе определенному логину
Для SQL — дополнительный SQL логин, но настраивать права нужно самому: Заводим еще один SQL логин — uXXX_Ann
Для начала используем нашу базу:
USE [uXXXX] GOСоздаем пользователя для определенного «логина»:
CREATE USER [InetUser] FOR LOGIN [uXXX_Ann] GOНаделяем его правами (например только чтение таблиц):
EXEC sp_addrolemember N'db_datareader', N'InetUser' GOИли можем дать пользователю только конкретные права, на конкретные таблицы. Например, давайте дадим пользователю InetUser права на SELECT, INSERT, UPDATE для таблицы test, следующим SQL-запросом :
USE [uXXXXXX] GO GRANT SELECT ON [dbo].[test] TO [InetUser] GO GRANT INSERT ON [dbo].[test] TO [InetUser] GO GRANT UPDATE ON [dbo].[test] TO [InetUser] GOПри всем при этом, при осуществлении доступа через SQL Management Studio, под дополнительным логином не являющимся владельцем базы, не будет видно базу данных в списке доступных баз, но будет возможность выполнять разрешенные SQL-запросы .
Как получить раскладку по размеру таблиц в базе
Это можно сделать следующим SQL-запросом:
SET NOCOUNT ON DBCC UPDATEUSAGE(0) -- DB size. EXEC sp_spaceused -- Table row counts and sizes. CREATE TABLE #t ( [name] NVARCHAR(128), [rows] CHAR(11), reserved VARCHAR(18), data VARCHAR(18), index_size VARCHAR(18), unused VARCHAR(18) ) INSERT #t EXEC sp_msForEachTable 'EXEC sp_spaceused ''?''' SELECT * FROM #t -- # of rows. SELECT SUM(CAST([rows] AS int)) AS [rows] FROM #t DROP TABLE #t