Меню

Состояние sql s0011 код ошибки 170

Sorry if the title is unclear.

As of right now, I just have a spreadsheet of a bunch of customers and orders. For example, a line in the spreadsheet might look like:

A Customer with an ID of 1 with name Sally and address 291 North Street bought item id 2.

The actual spreadsheet looks something like this table:

Customer Id Customer Name Customer Address Item Id Name Cost Order Id Ordered Date
1 Sally 291 North Street 2 Long Sleeves $20 1 1/1/2022
1 Sally 291 North Street 1 Shirt $15 1 1/1/2022
2 George 892 Lakers Ave 3 Backpack $30 5 4/9/2022

My goal is to properly normalize this data so it’s not as redundant. I’ve already separated the data into 3 tables, Items, Orders, and OrderInfo.

Items follows a structure like so:

Item Id (PK) Name Cost
1 XL Shirt $15
2 Long sleeves shirt $20
3 Backpack $30

Orders:

Order ID (PK/FK?) Customer ID Ordered Date
1 1 1/1/2022
5 2 4/9/2022

OrderInfo:

Order ID (PK/FK?) Item ID (PK/FK?)
1 2
1 1
5 3

As you can see from the orders table, I tried to combine all redundant orders where say user Sally ordered a long sleeves shirt and a regular shirt in the same order. However, this leaves redundant data in the OrdersInfo table, where the OrderId is the same for multiple fields because the customer bought multiple items in one order.

Is this correct? I am trying to define relationships on the tables in LibreOffice Base, and I can define the correct one-to-many relationships for all of them except for OrderInfo and Orders.

Here’s a screenshot of the relations and the error when I try to link the OrderID field.

Relations

Error

Error code:

SQL Status: S0011
Error code: -170

Primary or unique constraint required on main table: "Orders" in statement [ALTER TABLE "Order_Info" ADD  FOREIGN KEY ("order_id") REFERENCES "Orders" ("order_id")]

Sorry if the title is unclear.

As of right now, I just have a spreadsheet of a bunch of customers and orders. For example, a line in the spreadsheet might look like:

A Customer with an ID of 1 with name Sally and address 291 North Street bought item id 2.

The actual spreadsheet looks something like this table:

Customer Id Customer Name Customer Address Item Id Name Cost Order Id Ordered Date
1 Sally 291 North Street 2 Long Sleeves $20 1 1/1/2022
1 Sally 291 North Street 1 Shirt $15 1 1/1/2022
2 George 892 Lakers Ave 3 Backpack $30 5 4/9/2022

My goal is to properly normalize this data so it’s not as redundant. I’ve already separated the data into 3 tables, Items, Orders, and OrderInfo.

Items follows a structure like so:

Item Id (PK) Name Cost
1 XL Shirt $15
2 Long sleeves shirt $20
3 Backpack $30

Orders:

Order ID (PK/FK?) Customer ID Ordered Date
1 1 1/1/2022
5 2 4/9/2022

OrderInfo:

Order ID (PK/FK?) Item ID (PK/FK?)
1 2
1 1
5 3

As you can see from the orders table, I tried to combine all redundant orders where say user Sally ordered a long sleeves shirt and a regular shirt in the same order. However, this leaves redundant data in the OrdersInfo table, where the OrderId is the same for multiple fields because the customer bought multiple items in one order.

Is this correct? I am trying to define relationships on the tables in LibreOffice Base, and I can define the correct one-to-many relationships for all of them except for OrderInfo and Orders.

Here’s a screenshot of the relations and the error when I try to link the OrderID field.

Relations

Error

Error code:

SQL Status: S0011
Error code: -170

Primary or unique constraint required on main table: "Orders" in statement [ALTER TABLE "Order_Info" ADD  FOREIGN KEY ("order_id") REFERENCES "Orders" ("order_id")]

Я получаю эту ошибку при попытке подключиться к SQL Server.

ошибка Microsoft SQL Server: 18456

может кто-нибудь сказать мне, что код ошибки означает?

19 ответов:

проверьте эту статью в блоге от команды платформы данных.

https://blogs. msdn. com/b/sql_protocols/archive/2006/02/21/536201.aspx

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

после этого, Google, как исправить эту проблему.

перед открытием щелкните правой кнопкой мыши и выберите «Запуск от имени администратора». Это решило проблему для меня.

Я столкнулся с этой проблемой.

пожалуйста, посмотрите на прикрепленные изображения,

пожалуйста, измените свою проверку подлинности sql как SQL server и режим WindowsAuthenication,

и перезапустите Sql server.

enter image description here

двойной щелчок TCP / IP дал мне это:

TCP/IP properties, showing wrong IP address

IP-адрес был другого виртуального сервера! Это, наконец, заставило меня понять, что я просто запутался между серверами, и все хорошо работало на втором сервере.

щелкните правой кнопкой мыши пользователя, перейдите к свойствам, измените базу данных по умолчанию на master Это экран печати изображения, которое показывает, что вы должны проверить, если у вас есть ошибка 19456. Иногда это значение по умолчанию для базы данных, которую пользователь не имеет разрешения

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

для меня это было неправильно логин и пароль.

сначала перейдите в панель запуска, а затем выполните поиск локальных служб Затем нажмите на кнопку » Просмотр локальных служб» Затем он откроет окно службы, затем перейдите к SQL Server (MSSQLSERVER) щелкните правой кнопкой мыши на нем и нажмите кнопку стоп, а затем снова щелкните правой кнопкой мыши на нем и нажмите кнопку Пуск. Теперь вы можете войти в систему и ввести имя пользователя ‘СА’ и пароль свой пароль.

Я считаю, что это может произойти, если вы пытаетесь войти в систему с пользователем, который определен в Active Directory, но попробуйте использовать «аутентификацию SQL Server» на экране входа в систему. Я не знаю, как указать другого пользователя с проверкой подлинности NTLM/Windows: когда я нажимаю раскрывающийся список проверки подлинности Windows, имя пользователя и пароль отключаются, и я могу войти только как сам.

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

Вы можете попробовать следующее:

проверьте подключение

проверяем состояние

Состояние 5

состояние войти

«вы не смотрите в нужном месте «или»то, что вы видите, это не то, что вы думаете».

локальный конфликт БД и SQLEXPRESS

Если вы подключаетесь к SSMS с проверкой подлинности Windows, и ваш экземпляр называется SQLEXPRESS, вы, вероятно, смотрите на LocalDb и не правильный сервер. Таким образом, вы только что создали свой логин на LocalDb.

при подключении через проверку подлинности SQL Server с SSMS, он будет пытаться подключиться к реальному серверу SQLEXPRESS, где ваш любимый логин еще не существует.

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

Я столкнулся с той же проблемой. Сначала необходимо включить проверку подлинности в смешанном режиме. Более подробный Как включить проверку подлинности в смешанном режиме

Источники:

https://codengineering. ru/q/login-to-microsoft-sql-server-error-18456-23881

mariammm

1 / 1 / 0

Регистрация: 24.09.2019

Сообщений: 173

1

Ошибка при попытке создать таблицу

15.10.2020, 17:50. Показов 4194. Ответов 2

Метки нет (Все метки)


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

ERROR: ОШИБКА: отношение «cabins» уже существует

SQL state: 42P07

Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
CREATE TABLE cabins
(
    Id SERIAL PRIMARY KEY,
    Num_of_passangers NUMERIC,
    Price NUMERIC(6)
);
 
CREATE TABLE passenger
(
    Id SERIAL PRIMARY KEY,
    Cabin_id INTEGER REFERENCES cabins (Id),
    Passport_data CHARACTER VARYING(30)
);
 
CREATE TABLE car
(
    Id SERIAL PRIMARY KEY,
    Passenger_id INTEGER REFERENCES passenger (Id),
    Brand CHARACTER VARYING(30),
    Payment CHARACTER VARYING(30),
    Num_of_car NUMERIC(30),
    Scan CHARACTER VARYING(30)
);
 
CREATE TABLE nationality
(
    Id SERIAL PRIMARY KEY,
    Country CHARACTER VARYING(30)
);
 
CREATE TABLE carriage
(
    Id SERIAL PRIMARY KEY,
    Num_of_carriage NUMERIC(30)
);

Миниатюры

Ошибка при попытке создать таблицу
 

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



1184 / 914 / 367

Регистрация: 02.09.2012

Сообщений: 2,785

15.10.2020, 23:22

2

Так и что тут удивительного.
Объект создан был в первую попытку.
Во вторую попытку его уже создать нельзя. Сначала необходимо удалить.



1



remarkes

309 / 232 / 15

Регистрация: 01.07.2011

Сообщений: 812

Записей в блоге: 1

17.10.2020, 18:40

3

SQL
1
DROP TABLE cabins;

Потом заново создаёте таблицу вашими командами.
Чтобы ошибка не выскакивала, в CREATE TABLE можно добавить:

SQL
1
CREATE TABLE IF NOT EXISTS таблица(столбец тип_данных);



1



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

    • 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, либо позвонив в колл-центр нашей компании.

Присоединяйтесь к нам,

чтобы получать чек-листы, реальные кейсы, а также
обзоры сервисов раз в 2 недели.

Общие советы :

1) все данные (и виды платежей) — в одной плоской таблице (без каких-либо объединений ячеек) на одном(!) листе. Разделы «по счету», «по счетчику(по факту)» и «контроль» — это просто дополнительные столбцы справа.

2) вверху оставьте 10 строк для формул «итого», они всегда видны, т.к. область с формулами» закреплена»  

3) Долг и переплата — это всегда одна строка,  переплату можно ставить красным (формат ячейки — Отрицательное красным)

4) Из-за перерасчетов задним числом и смены тарифов — «помесячные итоги» не так полезны для анализа, как «нарастающий с начала года» или вообще «с начала времен». Я бы внес все квитки с начала года, добавил к январскому сумму долга/переплаты.  

5) Т.к. квитанция состоит всегда из 5 строк (Эл.Д, Эл.Н, ХВС, Вывоз ТКО, Утилизация ТКО) — то сразу их скопировать на 2 года вперед. Т.к. тариф меняется условного говоря «раз в полгода» и долго действует — сослаться формулами апреля — на март итд. И когда тариф эл. энергии станет не 2,83 а 4 — просто в том месяце перебиваем формулу на значение 4.

6) Нужно освоить функцию =СУММЕСЛИ(). Формула, которая суммирует все Дн. киловатты (по счету, счетчику и разницу) с начала года будет выглядеть так: =СУММЕСЛИ(Вид;’ЭлДень’;ПоСчету)
=СУММЕСЛИ(Вид;’ЭлДень’;ПоСчетчику)
=СУММЕСЛИ(Вид;’ЭлДень’;Отклон)
Чтобы можно было так легко писать и понимать формулы — нужно дать имена столбцам (точнее их диапазонам с 11-й по, скажем, по 71-строку, вперед на 5 лет). Для этой цели часто делают «официальную» шапку таблицы и ниже, через 1 пустую строку — дублируют её же краткой одной строкой «полей», в ней все слова без пробелов «Электроэнергия День кВт.ч» -> «ЭлДень». Понятности это не уменьшит, а вот скорость написания формулы вырастет пятикратно. Имена диапазонов можно тогда не создавать — Calc сам поймет где находится столбец «ЭлДень», с какой ячейки начинается и где заканчивается.

7) Самым левым столбцом делают «Период», вводят дату, скажем 31.01.18, 28.02.18. а в формате ячейки — Январь 18, Февраль 18 итд. После включения автофильтра на строке «полей», отделенной от «шапки» пустой строкой — появятся значки Автофильтра и возможность легко отбирать нужный период или нужный вид платежа в Автофильтре.

8) Чтобы автосуммировать видимое (прошедшее фильтр) — нужно освоить функцию =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СЧЕТ)

Полученная плоская таблица обладает громадным плюсом, она все-в-одном, логически целостна. Если захочется сделать по ней отчет — изучаем Сводные таблицы и диаграммы и делаем их на 2-м листе. Но даже просто =ПРОМЕЖУТОЧНЫЕ.ИТОГИ() даст вам информацию о среднем, максимальном, минимальном значении чего угодно за любой период, который выбирается Автофильтром.

Я плачу раз в полгода (ненавижу этот процесс и очереди, т.к. УК до сих пор работает только через ГРЦ-кассы, безнал никак, руководы УК по доброй российской традиции в федеральном розыске), — то оплату я ввожу одной строкой «между» квитанций (заплатил 10/03 — 45 тыс. руб.) Формула у меняя сама делит сумму одного платежа (45 тыс. руб.) на 108 отдельных чисел (по видам платежей). Это достигается суммированием накопленного долга с остатками долга и пени, пропорциональным делением. УК делает все точно так же, и когда с ними спорю — нахожу понимание. Разбивать 45 тр. на 6 квитанций х 6 видов платежей х 3 вида (недоимка/пеня/перерасчет) = 108 цифр — считаю пустой тратой времени. Учетные программы в УК и ТСЖ делают точно так же.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Сочетание клавиш сообщить об ошибке
  • Состояние установки отказ сведения об ошибке код 643