Средства разработки sql
Содержание:
- RemarksRemarks
- ODBC для C++ODBC for C++
- Установка и настройка MS SQL Server Management Studio
- Отображение типов данных money и smallmoneyDisplaying money and smallmoney Data Types
- Как работает служба «Обозреватель SQL Server»How SQL Server Browser Works
- Установка SQL ServerSQL Server installation
- БезопасностьSecurity
- Средства миграции и другие инструментыMigration and other tools
- ПримечанияRemarks
- Management tools
- РекомендацииBest Practices
RemarksRemarks
Программа установки SQL ServerSQL Server присваивает серверу имя компьютера.SQL ServerSQL Server Setup sets the server name to the computer name during installation. Чтобы изменить имя сервера, выполните процедуру sp_addserver, а затем перезапустите SQL ServerSQL Server.To change the name of the server, use sp_addserver, and then restart SQL ServerSQL Server.
При наличии нескольких установленных экземпляров SQL ServerSQL Server функция @@SERVERNAME возвращает указанные ниже сведения об имени локального сервера, если это имя не было изменено после установки.With multiple instances of SQL ServerSQL Server installed, @@SERVERNAME returns the following local server name information if the local server name has not been changed since set up.
ЭкземплярInstance | Информация о сервереServer information |
---|---|
Экземпляр по умолчаниюDefault instance | ‘имя_сервера»servername’ |
Именованный экземплярNamed instance | ‘имя_сервера\имя_экземпляра»servername\instancename’ |
Экземпляр отказоустойчивого кластера — экземпляр по умолчаниюfailover cluster instance — default instance | «сетевое_имя_экземпляра_отказоустойчивого_кластера_windows_server»‘network_name_for_fci_in_wsfc’ |
Экземпляр отказоустойчивого кластера — именованный экземплярfailover cluster instance — named instance | «сетевое_имя_экземпляра_отказоустойчивого_кластера_windows_server\имя_экземпляра»‘network_name_for_fci_in_wsfc\instancename’ |
Хотя функция @@SERVERNAME и свойство SERVERNAME функции SERVERPROPERTY могут возвращать строки в похожих форматах, эта информация может различаться.Although the @@SERVERNAME function and the SERVERNAME property of SERVERPROPERTY function may return strings with similar formats, the information can be different. Свойство SERVERNAME автоматически сообщает об изменениях сетевого имени компьютера.The SERVERNAME property automatically reports changes in the network name of the computer.
Функция @@SERVERNAME, напротив, не сообщает о таких изменениях.In contrast, @@SERVERNAME does not report such changes. Функция @@SERVERNAME информирует об изменении имени локального сервера, которое было выполнено с помощью хранимых процедур sp_addserver или sp_dropserver.@@SERVERNAME reports changes made to the local server name using the sp_addserver or sp_dropserver stored procedure.
ODBC для C++ODBC for C++
Открытый интерфейс доступа к базам данных (ODBC) был разработан в 1990 году. Он предшествовал .NET Framework.Open database connectivity (ODBC) was developed in the 1990s, and it predates .NET Framework. ODBC разработан для того, чтобы быть независимым от какой-либо конкретной системы баз данных и операционной системы.ODBC is designed to be independent of any particular database system, and independent of operating system.
За много лет разработчики в корпорации Майкрософт и других компаниях создали и выпустили множество драйверов ODBC.Over the years numerous ODBC drivers have been created and released by groups within and outside of Microsoft. Набор драйверов включает в себя несколько клиентских языков программирования.The range of drivers involve several client programming languages. Список целевых объектов данных выходит далеко за пределы SQL Server.The list of data targets goes well beyond SQL Server.
Некоторые другие драйверы подключения используют ODBC внутренним образом.Some other connectivity drivers use ODBC internally.
Разделы документацииDocumentation outline
Содержимое ODBC в этом разделе посвящено доступу к SQL Server или Базе данных SQL Azure с помощью C++.The ODBC content in this section focuses on accessing either SQL Server or Azure SQL Database, from C++. В следующей таблице приведены приблизительные структурные разделы основной документации по ODBC.The following table lists an approximate outline of the major documentation for ODBC.
ОбластьArea | ПодобластьSubarea | ОписаниеDescription |
---|---|---|
ODBC для C++ODBC for C++ | Корневой раздел нашей документации.Root of our documentation. | |
Linux — macOSLinux-macOS | Сведения об использовании ODBC в операционных системах Linux или macOS.Information about using ODBC on the Linux or macOS operating systems. | |
WindowsWindows | Сведения об использовании ODBC в операционной системе Windows.Information about using ODBC on the Windows operating system. | |
АдминистрированиеAdministration | Средство администрирования для управления источниками данных ODBC.The administrative tool for managing ODBC data sources. | |
МайкрософтMicrosoft | Различные драйверы ODBC, создаваемые и предоставляемые корпорацией Майкрософт.Various ODBC drivers that are created and provided by Microsoft. | |
Основные понятия и справочные материалыConceptual and reference | Основные сведения об интерфейсе ODBC, а также обычная справочная информация.Conceptual information about the ODBC interface, in addition to traditional reference. | |
» » | ПриложенияAppendixes | Таблицы переходов состояния, библиотека курсоров ODBC и многое другое.State transition tables, ODBC cursor library, and more. |
» » | Разработка приложенияDevelop app | Функции, дескрипторы и многое другое.Functions, handles, and much more. |
» » | Разработка драйверовDevelop driver | Сведения о разработке собственного драйвера ODBC, если у вас есть специализированный источник данных.How to develop your own ODBC driver, if you have a specialized data source. |
» » | УстановкаInstall | Установка ODBC, подразделы и многое другое.ODBC installation, subkeys, and more. |
» » | СинтаксисSyntax | API для настройки, установки, перевода и доступа к данным.APIs for setup, installer, translation, and data access. |
Установка и настройка MS SQL Server Management Studio
После того, как мы настроили сервер. Нужно настроить клиент. MS SQL Server Management Studio предоставляет удобный визуальный интерфейс для клиента и позволяет удобно разрабатывать и отправлять серверу запросы.
Установка его не сложнее плеера, поэтому останавливаться на этом не будем. Скачайте его с официального сайта Microsoft по одной из ссылок ниже.
- Скачать SQL Server Management Studio (16.5.1) https://download.microsoft.com/download/3/1/D/31D734E0-BFE8-4C33-A9DE-2392808ADEE6/SSMS-Setup-RUS.exe
- Скачать SQL Server Management Studio (17.0, версия-кандидат https://download.microsoft.com/download/B/2/3/B234198E-747D-4F89-9008-F39A7E4702D3/SSMS-Setup-RUS.exe
И установите. Программа сама определит, где у вас сервер. Просто следуйте инструкциям.
Отображение типов данных money и smallmoneyDisplaying money and smallmoney Data Types
Программаosql отображает типы данных money и smallmoney с двумя десятичными разрядами, хотя внутренний формат хранения этих данных в SQL ServerSQL Server предусматривает четыре десятичных разряда.osql displays the money and smallmoney data types with two decimal places although SQL ServerSQL Server stores the value internally with four decimal places. Рассмотрим пример:Consider the example:
Эта инструкция вернет — это означает, что значение хранится без сокращения количества десятичных разрядов.This statement produces a result of , which indicates that the value is stored with all decimal places intact.
Как работает служба «Обозреватель SQL Server»How SQL Server Browser Works
Если SQL ServerSQL Server настроен на использование протокола TCP/IP, то при запуске экземпляра SQL ServerSQL Serverсерверу назначается порт TCP/IP.When an instance of SQL ServerSQL Server starts, if the TCP/IP protocol is enabled for SQL ServerSQL Server, the server is assigned a TCP/IP port. Если включен протокол именованных каналов, SQL ServerSQL Server прослушивает указанный именованный канал.If the named pipes protocol is enabled, SQL ServerSQL Server listens on a specific named pipe. Этот порт или «канал», используется конкретным экземпляром для обмена данными с клиентскими приложениями.This port, or «pipe,» is used by that specific instance to exchange data with client applications. Экземпляру по умолчанию при установке назначается TCP-порт 1433 и канал , но затем эти значения могут быть изменены администратором сервера при помощи диспетчера конфигурации SQL ServerSQL Server .During installation, TCP port 1433 and pipe are assigned to the default instance, but those can be changed later by the server administrator using SQL ServerSQL Server Configuration Manager. Поскольку порт или канал может использоваться только одним экземпляром SQL ServerSQL Server , именованным экземплярам, включая SQL Server ExpressSQL Server Express, назначаются другие номера портов и имена каналов.Because only one instance of SQL ServerSQL Server can use a port or pipe, different port numbers and pipe names are assigned for named instances, including SQL Server ExpressSQL Server Express. По умолчанию, если и именованные экземпляры и SQL Server ExpressSQL Server Express настроены для работы с динамическими портами, это означает, что доступный порт назначается при запуске SQL ServerSQL Server .By default, when enabled, both named instances and SQL Server ExpressSQL Server Express are configured to use dynamic ports, that is, an available port is assigned when SQL ServerSQL Server starts. При необходимости экземпляру SQL ServerSQL Serverможет быть назначен конкретный порт,If you want, a specific port can be assigned to an instance of SQL ServerSQL Server. и при соединении клиенты смогут указать именно его. Но если порт назначается динамически, то он может измениться в любой момент после перезапуска SQL ServerSQL Server , поэтому клиент может и не знать правильного номера порта.When connecting, clients can specify a specific port; but if the port is dynamically assigned, the port number can change anytime SQL ServerSQL Server is restarted, so the correct port number is unknown to the client.
После запуска SQL ServerSQL Server запускается браузер и пытается занять UDP-порт 1434.Upon startup, SQL ServerSQL Server Browser starts and claims UDP port 1434. SQL ServerSQL Server читает реестр, находит все экземпляры SQL ServerSQL Server на данном компьютере и помечает используемые ими порты и именованные каналы.Browser reads the registry, identifies all instances of SQL ServerSQL Server on the computer, and notes the ports and named pipes that they use. Если сервер имеет несколько сетевых плат, браузер SQL ServerSQL Server возвращает первый допустимый порт, который найден для SQL ServerSQL Server.When a server has two or more network cards, SQL ServerSQL Server Browser returns the first enabled port it encounters for SQL ServerSQL Server. SQL ServerSQL Server поддерживает протоколы ipv6 и ipv4.Browser support ipv6 and ipv4.
При запросе клиентом SQL ServerSQL Server ресурсов SQL ServerSQL Server клиентская сетевая библиотека передает на сервер UDP-сообщение через порт 1434.When SQL ServerSQL Server clients request SQL ServerSQL Server resources, the client network library sends a UDP message to the server using port 1434. SQL ServerSQL Server Браузер в ответ сообщает TCP/IP-порт или именованный канал запрошенного экземпляра.Browser responds with the TCP/IP port or named pipe of the requested instance. Затем сетевая библиотека клиентского приложения завершает соединение, отправляя запрос на сервер с указанием номера порта или имени канала, относящегося к нужному экземпляру.The network library on the client application then completes the connection by sending a request to the server using the port or named pipe of the desired instance.
Дополнительные сведения о запуске и остановке службы браузера SQL ServerSQL Server см. в электронной документации SQL ServerSQL Server .For information about starting and stopping the SQL ServerSQL Server Browser service, see SQL ServerSQL Server Books Online.
Установка SQL ServerSQL Server installation
СтатьяArticle | ОписаниеDescription |
---|---|
Мастер установкиInstallation Wizard | Установите SQL Server с помощью графического интерфейса мастера установки, запущенного из файла setup.exe на установочном носителе.Install SQL Server using the Installation Wizard GUI launched from the setup.exe setup media. |
Командная строкаCommand Prompt | Пример синтаксиса и параметров установки для запуска установки SQL Server из командной строки.Sample syntax and installation parameters for running a SQL Server installation from the command prompt. |
Server CoreServer Core | Установите SQL ServerSQL Server в Windows Server Core.Install SQL ServerSQL Server on Windows Server Core. |
Параметры для средства проверки конфигурации системыCheck Parameters for the System Configuration Checker | Содержит обсуждение функций средства проверки конфигурации (SCC).Discusses the function of the System Configuration Checker (SCC). |
Файл конфигурацииConfiguration File | Образцы синтаксиса и параметров установки для запуска программы установки с помощью файла конфигурации.Sample syntax and installation parameters for running Setup through a configuration file. |
SysPrepSysPrep | Образцы синтаксиса и параметров установки для запуска программы установки с помощью SysPrep.Sample syntax and installation parameters for running Setup through SysPrep. |
Добавление компонентов в экземплярAdd Features to an Instance | Обновление компонентов существующего экземпляра SQL ServerSQL Server.Update components of an existing instance of SQL ServerSQL Server. |
Установка отказоустойчивого кластера SQL ServerSQL Server Failover Cluster Installation | Установка экземпляра отказоустойчивого кластера SQL Server.Install a SQL Server failover cluster instance. |
Исправление неудавшейся установки SQL ServerSQL ServerRepair a Failed SQL ServerSQL Server Installation | Восстановление поврежденной установки SQL ServerSQL Server.Repair a corrupt SQL ServerSQL Server installation. |
Переименование компьютера с SQL ServerRename a computer with SQL Server | Обновите системные метаданные, хранящиеся в sys.servers, после переименования узла компьютера, на котором размещен изолированный экземпляр SQL Server.Update system metadata that is stored in sys.servers after the hostname of a computer hosting a stand-alone instance of SQL Server has been renamed. |
Установка обновлений для обслуживания SQL ServerSQL ServerInstall SQL ServerSQL Server Servicing Updates | Установка обновлений для SQL ServerSQL Server.Install updates for SQL ServerSQL Server. |
Файлы журналов установкиSetup Log Files | Просмотр и чтение ошибок в файлах журналов программы установки SQL Server.View and read the errors in the SQL Server setup log files. |
Проверка установкиValidate an Installation | Описано использование отчета обнаружения SQL для проверки того, какая версия SQL ServerSQL Server и какие компоненты SQL ServerSQL Server установлены на компьютере.Review the use of the SQL Discovery report to verify the version of SQL ServerSQL Server and the SQL ServerSQL Server features installed on the computer. |
БезопасностьSecurity
Права доступа учетной записиAccount Privileges
SQL ServerSQL Server Браузер прослушивает UDP-порт и принимает запросы без проверки подлинности с использованием протокола разрешения SQL ServerSQL Server (SSRP).Browser listens on a UDP port and accepts unauthenticated requests by using SQL ServerSQL Server Resolution Protocol (SSRP). SQL ServerSQL Server должен запускаться в контексте безопасности непривилегированного пользователя, чтобы минимизировать ущерб при возможном проникновении злоумышленника.Browser should be run in the security context of a low privileged user to minimize exposure to a malicious attack. Учетную запись входа можно изменить при помощи диспетчера конфигурации SQL ServerSQL Server .The logon account can be changed by using the SQL ServerSQL Server Configuration Manager. Права, которые необходимо назначить браузеру SQL ServerSQL Server .The minimum user rights for SQL ServerSQL Server Browser are the following:
-
Запретить сетевой доступ к этому компьютеру.Deny access to this computer from the network
-
Запретить локальный вход в систему.Deny logon locally
-
Запретить вход в систему в качестве пакетного задания.Deny Log on as a batch job
-
Запретить вход в систему через службы терминалов.Deny Log On Through Terminal Services
-
Вход в систему в качестве службы.Log on as a service
-
Разрешить чтение и запись разделов реестра SQL ServerSQL Server , связанных с сетью (порты и каналы).Read and write the SQL ServerSQL Server registry keys related to network communication (ports and pipes)
Учетная запись по умолчаниюDefault Account
Программа установки настраивает браузер SQL ServerSQL Server для использования учетной записи, выбранной для служб при установке.Setup configures SQL ServerSQL Server Browser to use the account selected for services during setup. Можно указать другую учетную запись:Other possible accounts include the following:
-
Любая учетная запись домен\локальная .Any domain\local account
-
Учетная запись локальной службыThe local service account
-
Учетная запись локальной системы (не рекомендуется за избыточностью прав доступа).The local system account (not recommended as has unnecessary privileges)
Скрытие экземпляра SQL ServerHiding SQL Server
Скрытые экземпляры SQL ServerSQL Server — это экземпляры, которые поддерживают только соединения через общую память.Hidden instances are instances of SQL ServerSQL Server that support only shared memory connections. В SQL ServerSQL Serverустановите флаг , чтобы браузер SQL ServerSQL Server не выдавал сведения об этом экземпляре сервера.For SQL ServerSQL Server, set the flag to indicate that SQL ServerSQL Server Browser should not respond with information about this server instance.
Применение брандмауэраUsing a Firewall
Для связи со службой браузера SQL ServerSQL Server на сервере, защищенном брандмауэром, в дополнение к TCP-порту SQL ServerSQL Server (например 1433) откройте UDP-порт 1434.To communicate with the SQL ServerSQL Server Browser service on a server behind a firewall, open UDP port 1434, in addition to the TCP port used by SQL ServerSQL Server (e.g., 1433). Сведения о работе с брандмауэром см. в разделе «Практическое руководство. Настройка брандмауэра для доступа SQL ServerSQL Server» в документации по SQL ServerSQL Server.For information about working with a firewall, see «How to: Configure a Firewall for SQL ServerSQL Server Access» in SQL ServerSQL Server Books Online.
Средства миграции и другие инструментыMigration and other tools
Эти средства используются для переноса, настройки и предоставления других функций для баз данных SQL.These tools are used to migrate, configure, and provide other features for SQL databases.
ИнструментTool | DescriptionDescription |
---|---|
Диспетчер конфигурацийConfiguration Manager | Используйте диспетчер конфигурации SQL Server, чтобы настроить службы SQL Server и сетевые соединения.Use SQL Server Configuration Manager to configure SQL Server services and configure network connectivity. Configuration Manager работает в Windows.Configuration Manager runs on Windows |
Database Experimentation AssistantDatabase Experimentation Assistant | Database Experimentation Assistant позволяет оценить целевую версию SQL для данной рабочей нагрузки.Use Database Experimentation Assistant to evaluate a targeted version of SQL for a given workload. |
Помощник по миграции данныхData Migration Assistant | Помощник по миграции данных поможет вам выполнить переход на современную платформу данных благодаря обнаружению проблем совместимости, которые могут влиять на функциональные возможности базы данных в новой версии SQL Server или базы данных SQL Azure.The Data Migration Assistant tool helps you upgrade to a modern data platform by detecting compatibility issues that can impact database functionality in your new version of SQL Server or Azure SQL Database. |
Распределенное воспроизведениеDistributed Replay | Функция распределенного воспроизведения позволяет оценить влияние будущих обновлений SQL Server.Use the Distributed Replay feature to help you assess the impact of future SQL Server upgrades. Ее также можно использовать для оценки влияния обновлений аппаратной части и операционной системы, а также для настройки SQL Server.Also use Distributed Replay to help assess the impact of hardware and operating system upgrades, and SQL Server tuning. |
ssbdiagnosessbdiagnose | Программа ssbdiagnose сообщает о проблемах в диалогах Service Broker или в конфигурации служб Service Broker.The ssbdiagnose utility reports issues in Service Broker conversations or the configuration of Service Broker services. |
Помощник по миграции SQL ServerSQL Server Migration Assistant | Помощник по миграции SQL Server используется для автоматизации миграции баз данных в SQL Server из Microsoft Access, DB2, MySQL, Oracle и Sybase.Use SQL Server Migration Assistant to automate database migration to SQL Server from Microsoft Access, DB2, MySQL, Oracle, and Sybase. |
ПримечанияRemarks
Явное включение очень большого количества значений (много тысяч значений, разделенных запятыми) в круглые скобки в предложение IN может привести к интенсивному расходованию ресурсов и возврату ошибки 8623 или 8632.Explicitly including an extremely large number of values (many thousands of values separated by commas) within the parentheses, in an IN clause can consume resources and return errors 8623 or 8632. Чтобы избежать этой проблемы, храните элементы списка IN в таблице и используйте вложенный запрос SELECT в предложении IN.To work around this problem, store the items in the IN list in a table, and use a SELECT subquery within an IN clause.
Ошибка 8623.Error 8623:
Ошибка 8632.Error 8632:
Management tools
Feature | Enterprise | Standard | Web | Express with Advanced Services | Express |
---|---|---|---|---|---|
SQL Management Objects (SMO) | Yes | Yes | Yes | Yes | Yes |
SQL Assessment API | Yes | Yes | Yes | Yes | Yes |
SQL Vulnerability Assessment | Yes | Yes | Yes | Yes | Yes |
SQL Configuration Manager | Yes | Yes | Yes | Yes | Yes |
SQL CMD (Command Prompt tool) | Yes | Yes | Yes | Yes | Yes |
Distributed Replay — Admin Tool | Yes | Yes | Yes | Yes | No |
Distribute Replay — Client | Yes | Yes | Yes | No | No |
Distributed Replay — Controller | Yes1 | Yes2 | Yes2 | No | No |
SQL Profiler | Yes | Yes | No3 | No3 | No3 |
SQL Server Agent | Yes | Yes | Yes | No | No |
Microsoft System Center Operations Manager Management Pack | Yes | Yes | Yes | No | No |
Database Tuning Advisor (DTA) | Yes | Yes4 | Yes4 | No | No |
1 Up to 16 clients
2 1 client
3 SQL Server Web, SQL Server Express, SQL Server Express with Tools, and SQL Server Express with Advanced Services can be profiled using SQL Server Standard and SQL Server Enterprise editions.
4 Tuning enabled only on Standard edition features
РекомендацииBest Practices
В инструкции SELECT всегда указывайте ORDER BY вместе с предложением TOP.In a SELECT statement, always use an ORDER BY clause with the TOP clause. Дело в том, что это единственный предсказуемый способ отбора строк предложением TOP.Because, it’s the only way to predictably indicate which rows are affected by TOP.
Для реализации решения разбиения на страницы пользуйтесь предложениями OFFSET и FETCH в предложении ORDER BY, а не предложением TOP.Use OFFSET and FETCH in the ORDER BY clause instead of the TOP clause to implement a query paging solution. Решение разбиения на страницы (т.е. постраничной выдачи данных клиенту) проще реализовать с помощью предложений OFFSET и FETCH.A paging solution (that is, sending chunks or «pages» of data to the client) is easier to implement using OFFSET and FETCH clauses. Дополнительные сведения см. в разделе Предложение ORDER BY (Transact-SQL).For more information, see ORDER BY Clause (Transact-SQL).
Для ограничения числа возвращаемых строк пользуйтесь TOP (или OFFSET и FETCH), а не SET ROWCOUNT.Use TOP (or OFFSET and FETCH) instead of SET ROWCOUNT to limit the number of rows returned. Эти методы предпочтительнее, чем SET ROWCOUNT, по следующим причинам:These methods are preferred over using SET ROWCOUNT for the following reasons:
Являясь частью инструкции SELECT, оптимизатор запросов может принимать значение expression в предложениях TOP или FETCH во время оптимизации запроса.As a part of a SELECT statement, the query optimizer can consider the value of expression in the TOP or FETCH clauses during query optimization. Так как SET ROWCOUNT используется вне инструкции, выполняющей запрос, значение не может быть учтено в плане запроса.Because you use SET ROWCOUNT outside of a statement that runs a query, its value can’t be considered in a query plan.