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.


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.


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.
двойной щелчок TCP / IP дал мне это:
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
Миниатюры
__________________
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 |
|||||||
Потом заново создаёте таблицу вашими командами.
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-сервера действительно установлен и запущен. Для этого зайдите на компьютер, где он установлен, запустите диспетчер конфигурации 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 цифр — считаю пустой тратой времени. Учетные программы в УК и ТСЖ делают точно так же.
