Ошибка не найдена строка server

SQL Server 2016 Service Pack 1 SQL Server 2016 Developer — duplicate (do not use) SQL Server 2016 Enterprise — duplicate (do not use) SQL Server 2016 Enterprise Core — duplicate (do not use) SQL Server 2016 Standard — duplicate (do not use) SQL Server 2016 Service Pack 2 SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows Еще…Меньше

Проблемы

Предполагается, что вы используете транзактные
Репликация в SQL Server 2016 или 2017 с помощью подписчика баз данных Microsoft Azure SQL (DB) и
Использование нескольких потоков подписки. В этой конфигурации при взаимодействии между различными потоками подписок агент распространителя попытается выполнить откат всех открытых транзакций, и произойдет повторная попытка
в режиме одной подписки. В этой ситуации на подписчике может появиться сообщение об ошибке «строка не найдена».

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе «Применяется к».

Решение

Совокупные сведения об обновлениях:

Это исправление входит в состав указанных ниже
накопительные обновления для SQL Server:

  • Накопительное обновление 16 для SQL Server 2017

  • Накопительное обновление 8 для SQL Server 2016 с пакетом обновления 2 (SP2)

Сведения о накопительных обновлениях для SQL
Server

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

  • Последнее накопительное обновление для SQL Server 2017

  • Последнее накопительное обновление для SQL Server 2016

Сведения об исправлениях по запросу:

Эта проблема исправлена в описанном ниже исправлении для сервера SQL Server, установленного по запросу:

  • Исправление по запросу для SQL Server 2016 с пакетом обновления 1 (SP1) CU15

Ссылки

Ознакомьтесь стерминологией  , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

I’m trying to delete some rows from an events table using the following.

DECLARE @PRODUCTION_ID int = 13811

DELETE openquery(TEST, 
'SELECT p.id as production_id FROM EVENTS ev 
LEFT JOIN production_seasons ps ON ev.production_season_id = ps.id 
LEFT JOIN productions p ON ps.production_id = p.id')
where production_id = @PRODUCTION_ID

However, the query fails when events are returned i.e. when there is a non empty resultset. If the resultset is empty the query just returns (0 row(s) affected).

The error I get is:

OLE DB provider «MSDASQL» for linked server «TEST» returned
message «Row cannot be located for updating. Some values may have been
changed since it was last read.».

I’m not sure what this means, any help appreciated.

asked Nov 27, 2012 at 14:01

Abs's user avatar

3

The above query was changed to this:

DECLARE @TSQL varchar(500)
SELECT  @TSQL = 
'DELETE OPENQUERY(TEST,''SELECT ev.* FROM EVENTS ev 
LEFT JOIN production_seasons ps ON ev.production_season_id = ps.id 
LEFT JOIN productions p ON ps.production_id = p.id WHERE p.id = ' + convert(varchar, @PRODUCTION_ID) + ''')'
EXEC (@TSQL)

The important part is the select ev.* as it seems to make it specific to delete from the events table. This page helped me to realise this.

Since you can’t pass variables via openquery I had to make use of one of these.

answered Nov 27, 2012 at 14:37

Abs's user avatar

AbsAbs

55.7k101 gold badges273 silver badges409 bronze badges

«При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен на разрешение удаленных подключений. (Поставщик: поставщик именованных каналов, ошибка: 40 — не удалось открыть соединение с SQL Server) (Microsoft SQL Server, ошибка: 53)».

При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром.

В статье обсуждается подробный список методов устранения неполадок, которые можно использовать для подключения к серверу SQL. Прежде всего, мы обсудим проблемы, которые возникают, когда вам нужно подключиться к удаленному серверу с использованием IP-адреса, так как это наиболее распространенная причина. Эти шаги описаны в «SQL Server 2008 R2» для «Windows 10», но их можно использовать и в других версиях с небольшими изменениями.

Ошибка обычно означает, что «SQL-сервер не найден» или «TCP-порт либо неизвестен, либо неверен», либо он может быть заблокирован «брандмауэром».

Способ 1. Соберите информацию об экземпляре SQL Server.

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

Шаг 1. Проверьте, установлен ли экземпляр SQL Server и работает ли он

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

  1. Нажмите «Пуск», а затем выберите «Все программы».
  2. Теперь укажите на SQL Server, а затем выберите «Инструменты настройки».
  3. Нажмите «Диспетчер конфигурации SQL Server».
  4. Теперь выберите «Службы SQL Server» и проверьте на правой панели, запущен ли экземпляр ядра базы данных.
  5. Более того, это можно открыть напрямую, набрав «services.msc» в RUN и нажав «ОК». Появится следующий экран.

Открытие служб путем ввода «services.msc» в поле «Выполнить».

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

  1. После того, как службы были открыты, вы можете увидеть механизм базы данных на правой панели. «MSSQLSERVER» — это безымянный экземпляр по умолчанию. Экземпляр по умолчанию может быть только один.
  2. В случае «SQL Express» экземпляром по умолчанию будет «SQLEXPRESS», если только он не будет переименован кем-либо во время установки.
  3. Убедитесь, что экземпляр, к которому вы пытаетесь подключиться, имеет то же имя, что и в службах.
  4. Также убедитесь, что экземпляр находится в состоянии «РАБОТАЕТ».
  5. Более того, если вы пытаетесь подключиться к named Instant, дважды проверьте, запущена ли уже «служба браузера SQL Server». Таким образом, вам необходимо проверить, запущена ли «служба обозревателя SQL Server» на сервере, на котором установлен SQL Server.
  6. В случае, если ядро ​​базы данных не запущено, вам необходимо перезапустить его. Итак, чтобы запустить «Ядро базы данных», на правой панели щелкните правой кнопкой мыши «Ядро базы данных» («MSSQLSERVER» по умолчанию), а затем нажмите «Пуск».

Проверьте, запущена ли уже «служба браузера SQL Server».

Шаг 2. Получите IP-адрес компьютера.

Для этого выполните следующие действия.

  1. Прежде всего, в меню «Пуск» нажмите «Выполнить», введите «cmd» и нажмите «ОК».
  2. В окне командной строки введите «ipconfig» и запишите адреса IPV4 и IPV6. Люди в основном используют адрес IPV4.

Получить IPv4-адрес

Шаг 3. Получите номер порта TCP, используемый сервером SQL.

Выполните следующие шаги, чтобы получить номер порта TCP, используемый сервером SQL.

  1. Используя «SQL Server Management Studio» (SSMS), подключитесь к экземпляру SQL-сервера.
  2. В «обозревателе объектов» разверните «Управление», разверните «Журнал SQL-сервера» и щелкните текущий журнал, к которому вы должны применить фильтр.
  3. Чтобы применить фильтр, нажмите «Применить фильтр» и введите «сервер прослушивается» в текстовое поле «Сообщение содержит». Нажмите «Применить фильтр» и нажмите «ОК».

    Применение фильтра «сервер прослушивается»

  4. Сообщение типа «сервер прослушивает [‘any’ <ipv4> 1433]» следует показать. Сообщение показывает, что экземпляр SQL Server прослушивает все компьютеры с IP-адресом IPv4 и TCP-портом 1433 (по умолчанию).
  5. Для более чем одного экземпляра TCP-порт будет другим для каждого экземпляра.

    Сообщение о том, что сервер прослушивает IPv4 и порт 1433

  6. Если это не так, нажмите «Все программы», выберите «Инструменты настройки сервера MS SQL», «Управление конфигурацией сервера SQL», щелкните правой кнопкой мыши «TCPIP» и нажмите «Включить» и перезапустите сервер SQL, чтобы изменения вступили в силу.

Способ 2: Включение протоколов для порта 1433

Подключение к «Ядро базы данных» с другого компьютера не разрешено во многих реализациях «SQL Server», если только администратор не использует «Диспетчер конфигурации», чтобы разрешить это. Для этого необходимо выполнить следующие шаги.

  1. Нажмите «Пуск», а затем выберите «Все программы».
  2. Укажите на «SQL Server 2008 R2».
  3. Укажите на «Инструменты настройки», а затем нажмите «Диспетчер конфигурации SQL Server».
  4. Разверните «Сетевая конфигурация SQL Server».
  5. Выберите «Протоколы для сервера MSSQL». Нажмите «TCPIP» на правой панели.

    Открытие вкладки «Протокол»

  6. Во вкладке «Протокол» установите «Да».
  7. Выберите вкладку «IP-адрес» в окне и установите «TCP-порт» равным «1433» в записи «IP All».

    Установите номер порта на вкладке «IP-адрес».

  8. Теперь перезапустите механизм базы данных, чтобы изменения оставили свой эффект. Для этого на левой панели выберите службы SQL-сервера, а затем на правой панели щелкните правой кнопкой мыши экземпляр ядра базы данных и нажмите «перезапустить».

Способ 3: создать исключение брандмауэра

Иногда включается брандмауэр Windows и блокирует ссылки с другого компьютера. Чтобы исправить это, выполните следующие действия.

  1. Нажмите «Пуск» и начните вводить «Firewall.cpl» в поле «Выполнить».

    Открытие «Firewall.cpl»

  2. Вы получаете «фрейм конфигурации» для брандмауэра Windows, выполнив команду «firewall.cpl». Вы можете включить/выключить брандмауэр с исключениями и другими настройками, применяемыми здесь. Проверьте состояние брандмауэра и включите его, чтобы активировать его, если брандмауэр выключен. Если вы только что включили это, ваш брандмауэр будет блокировать любой запрос на подключение «SQL Server» к вашему компьютеру в этот момент. Сделав определенные исключения, вам потребуется настроить брандмауэр, чтобы разрешить доступ к ядру базы данных SQL Server.
  3. Нажмите «Дополнительные настройки»

    Нажмите на опцию дополнительных настроек, чтобы открыть правила брандмауэра.

  4. Нам нужно узнать о портах, используемых для «SQL Server» и функции «Браузер SQL Server» при работе с конфигурациями брандмауэра «SQL Server». Оба участвуют в настройке «брандмауэра» для «SQL Server». Поэтому было бы необходимо рассмотреть оба понятия по отдельности.
  5. Вы можете разрешить или заблокировать попытки доступа к компьютеру, отвечающие требованиям правила. По умолчанию «входящий трафик» заблокирован, вам необходимо установить «правило для входящего трафика», чтобы разрешить доступ трафика к компьютеру. Нажмите «Правила для входящих подключений» на левой панели «Брандмауэр Windows в режиме повышенной безопасности» и нажмите «Новое правило» в окне «Действия».

    Выбор нового правила в окне «Действия».

  6. Выберите «Порт» в разделе «Тип правила» и нажмите кнопку «Далее».

    Выбор опции «порт»

  7. Теперь выберите «Определенные локальные порты» и установите его на 1433.

    установите «конкретный локальный порт» на 1433

  8. Теперь выберите «Разрешить подключение» в диалоговом окне «Действие» и нажмите кнопку «Далее».

    выбрав «Разрешить подключение»

  9. Дайте правилу «название» на этом этапе и нажмите кнопку «Готово».

    Дайте название правилу

  10. Выберите «Пользовательское правило» на вкладке «Новое правило».

    Выберите «Пользовательское правило» на вкладке «Новое правило».

  11. Нажмите «настроить»

    Нажмите «настроить»

  12. Выберите «Служба экземпляра ядра базы данных» в разделе «Настройка параметров службы» в разделе «Применить к этой службе» и нажмите кнопку «ОК».

    Выберите «Служба экземпляра ядра базы данных» в разделе «Настройка параметров службы» в разделе «Применить к этой службе» и нажмите кнопку «ОК».

  13. Дайте правилу имя и нажмите «Готово».

    Дайте название новому правилу

  14. Также добавьте «sqlservr.exe», обычно расположенный в «C:Program Files (x86)Microsoft SQL ServerMSSQL.xMSSQLBin» (или проверьте фактический путь к папке), к пути, проверьте свои установки на фактическое путь к папке) и порт со значением по умолчанию «1433». Также проверьте строку подключения.

Способ 4: проверьте локальное соединение

Одна из причин этой ошибки заключается в том, что если мы укажем неправильное имя сервера, это приведет к ошибке. Как видно на рисунке ниже, предоставленное имя сервера — «DESKTOP-UD88TLT1», тогда как точное имя сервера — «DESKTOP-UD88TLT». Таким образом, он не сможет подключиться к серверу, что приведет к ошибке «невозможно подключиться к серверу». Это самая основная причина ошибки, поэтому мы должны сначала проверить ее, если работаем локально.

Ошибка возникает при локальном подключении к SQL-серверу с неправильным именем сервера. Если вы используете экспресс-выпуск после имени вашего сервера, добавьте «SQLEXPRESS», как показано на рисунке ниже.

Локальное подключение к SQL-серверу при использовании экспресс-версии

Содержание статьи:

    • SQL-сервер не найден или недоступен, ошибки соединения с SQL-сервером
      • Ошибка SQL-сервера 26
      • Ошибка SQL-сервера 18456
      • Не удалось запустить SQL-server — код ошибки 3417
    • Повреждена база данных
      • Код ошибки SQL-сервера 945
      • Код ошибки SQL-сервера 5172
      • Ошибка SQL-сервера 823
      • Ошибка SQL-сервера 8946
    • Другие ошибки SQL Server
      • Код ошибки SQL-сервера 1814
      • Код ошибки SQL-сервера 1067
      • SQL-сервер запускается, но работает слишком медленно

SQL-сервер не найден или недоступен, ошибки соединения с SQL-сервером

  • Если SQL-сервер не найден, убедитесь, что ваш экземпляр SQL-сервера действительно установлен и запущен. Для этого зайдите на компьютер, где он установлен, запустите диспетчер конфигурации SQL и проверьте, есть ли там тот экземпляр, к которому вы пытаетесь подключиться и запущен ли он. Нелишним будет также получить отчет об обнаружении компонентов SQL-серверов.
  • Если вы проделали п1. и не обнаружили источник проблемы, возможно, неверно указан IP-адрес компьютера или номер порта TCP. Перепроверьте их настройки.
  • Причиной того, что невозможно подключиться к SQL-серверу, также может быть сеть, убедитесь, что компьютер с SQL-сервером доступен по сети.
  • Проверьте, может ли клиентское приложение, установленное на том же компьютере, что и сервер, подключиться к SQL-серверу. Запустите SQL Server Management Studio(SSMS), в диалоговом окне “Подключиться к серверу” выберите тип сервера Database Engine, укажите способ аутентификации “Аутентификация Windows”, введите имя компьютера и экземпляра SQL-сервера. Проверьте подключение.

Обратите внимание, что многие сообщения об ошибках могут быть не показаны или не содержат достаточной информации для устранения проблемы. Это сделано из соображений безопасности, чтобы при попытке взлома злоумышленники не могли получить информацию об SQL-сервере. Полные сведения содержатся в логе ошибок, который обычно хранится по адресу C:Program FilesMicrosoft SQL ServerMSSQL13.MSSQLSERVERMSSQLLogERRORLOG, или там, куда его поместил администратор системы.

Ошибка SQL-сервера 26

Одна из наиболее часто встречающихся ошибок подключения к SQL-серверу, обычно связана с тем, что в настройках SQL-сервера не разрешены или ограничены удаленные соединения. Чтобы это исправить, попробуйте:

  • в SSMS в настройках SQL-сервера включите аутентификацию Windows
  • для брандмауэра Windows  создайте новое правило, которое разрешает подключение для всех программ и протоколов с указанного IP-адреса
  • убедитесь, что запущена служба SQL Server Browser

Ошибка SQL-сервера 18456

Эта ошибка означает, что попытка подключиться к серверу не успешна из-за проблем с именем пользователя или паролем. По коду ошибки в журнале ошибок можно узнать более точную причину, чтобы устранить ее.

Не удалось запустить SQL-server — код ошибки 3417

Возникает в случае, если были изменены настройки Windows или перемещена папка с файлами MSSQL.

  • зайдите в C:Program FilesMicrosoft SQLServerMSSQL.1MSSqLData — БезопасностьНастройки доступа — Учетная запись сетевой службы — добавьте учетную запись сетевой службы
  • проверьте, что MDF-файл не сжимается. Если это не так, отключите “Сжимать содержимое для экономии места на диске” в свойствах файла

Иногда ни один из этих способов не помогает, это значит, что файлы БД повреждены и ее придется восстанавливать из резервной копии.

Повреждена база данных

Код ошибки SQL-сервера 945

Ошибка 945 возникает, когда БД SQL-сервера помечена как IsShutdown. Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД, файлы MDF и LDF не должны быть помечены “Только для чтения”.

Код ошибки SQL-сервера 5172

SQL-сервер хранит свою физическую БД в первичном файле, в котором информация разбита постранично. Первая страница содержит информацию о заголовке mdf-файла и называется страницей заголовка. Она состоит из разнообразной информации о БД, такой как размер файла, подпись и т.д. В процессе прикрепления MDF на SQL-сервере часто возникает ошибка 5172. Это в основном происходит, если MDF-файл поврежден, информация в его заголовке тоже и соответственно сложно добраться до данных. Причиной может быть вирус, аварийное выключение системы, ошибка оборудования.

Ошибка SQL-сервера 823

SQL использует API Windows для операций ввода-вывода, но кроме завершения этих операций SQL проверяет все ошибки обращений к API. Если эти обращения несовместимы с ОС, появляется ошибка 823. Сообщение об ошибке 823 означает, что существует проблема с базовым оборудованием для хранения данных или с драйвером, который находится на пути запроса ввода-вывода. Пользователи могут столкнуться с этой ошибкой, если в файловой системе есть противоречия или поврежден файл базы данных.

Ошибка SQL-сервера 8946

Основной причиной ошибки 8946 так же, как и для 5172, является повреждение заголовков страниц БД SQL вследствие сбоя питания, вирусной атаки, отказа оборудования — SQL-сервер больше не может прочесть эти страницы.

Перечисленные ошибки 945, 5172, 823, 8946 можно устранить двумя методами:

  • если у вас есть свежая резервная копия базы — восстановить базу из этой копии
  • можно попробовать использовать специализированное ПО, такое как SQL Recovery Tool, чтобы восстановить поврежденные файлы

Желательно определить, что именно привело к возникновению ошибок и принять меры, чтобы это не повторялось — заменить плохо работающее оборудование, повысить информационную безопасность.

Другие ошибки SQL

Код ошибки SQL-сервера 1814

SQL-сервер не может создать базу данных tempdb.  Убедитесь, что на выделенном под нее диске достаточно места и что у учетной записи хватает прав для записи в указанную директорию.

Код ошибки SQL-сервера 1067

Эта ошибка может возникать по разным причинам. Наиболее часто оказывается, что повреждены или отсутствуют конфигурационные файлы, SQL-сервер обращается к поврежденным системным файлам, ошибочные данные пользователя, нет информации про лицензию. В самых тяжелых случаях придется переустанавливать SQL-сервер. Но иногда помогает восстановление поврежденных файлов или изменение настроек SQL-сервера — вы можете создать новую учетную запись в домене и использовать ее для службы MSSQL.

SQL-сервер запускается, но работает слишком медленно

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

Мы работаем с разными версиями SQL-сервера уже много лет, знакомы со всевозможными инструкциями SQL-сервера, видели самые разные варианты его настройки и использования на проектах у своих клиентов. В целом мы можем выделить четыре основных источника неполадок:

  • Индексы — причина проблем номер один. Неправильные индексы, отсутствующие индексы, слишком много индексов и подобное. Чаще всего при проблеме с индексами пользователи или администраторы базы данных не получают сообщения об ошибке, они просто видят, что база работает очень медленно и докопаться до причин бывает очень нелегко
  • изначально плохая архитектура сервера баз данных — ошибка, которую очень сложно и дорого исправлять на этапе, когда база уже используется
  • плохой код, в котором возможны блокировки и тупиковые места
  • использование конфигурации по умолчанию,

Если у вас не получается устранить ошибки сервера SQL-server самостоятельно, если они появляются снова и снова, то скорее всего в основе лежит одна из этих причин. В таком случае — если у вас произошла ошибка с SQL сервером, ваше ПО не видит SQL-сервер, либо нужно развернуть кластер SQL-серверов — вы всегда можете обратиться за консультацией и технической поддержкой к специалистам Интегруса, отправив заявку с сайта, написав на e-mail, либо позвонив в колл-центр нашей компании.

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

Кейсы и стратегии от экспертов рынка.

mnepoh

Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.Data.SqlClient.SqlException: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: SQL Network Interfaces, error: 50 — Произошла ошибка Local Database Runtime.Невозможно создать автоматический экземпляр. Дополнительные сведения об ошибке см. в журнале событий приложений Windows.)

Ошибка возникает даже если подключаться к полноценному SQL server.


  • Вопрос задан

    более трёх лет назад

  • 15269 просмотров

Пригласить эксперта

Так, собственно, все возможные причины уже описаны. Что вы хотите ещё узнать.
Проверьте connection string. Если стоит SQL Server, то проверьте, включен ли браузер и настроены удаленные соединения.
Но скорее всего проблема в строке подключения.

Ответ нашел только тут

Если в кратце, то помогло только изменение Application Pool Identity в LocalSystem.

Если сервер ваш и IIS в ваших руках, то проблем нет, а вот если где-то хоститесь, то на практике не могу подсказать.


  • Показать ещё
    Загружается…

13 июн. 2023, в 23:37

1000 руб./в час

13 июн. 2023, в 23:22

15000 руб./за проект

13 июн. 2023, в 23:17

20000 руб./за проект

Минуточку внимания

Понравилась статья? Поделить с друзьями:
  • Ошибка не найден файл settings ini
  • Ошибка не найдена страница настроек
  • Ошибка не найден файл null
  • Ошибка не найден файл msvcp140 dll
  • Ошибка не найден файл msvcp120 dll