Это решение также решает как сетевую ошибку, так и службу за сервером sql
. Я ответил на аналогичный вопрос здесь, вам нужно указать другой open Run type-> services.msc
- под услугами -> sort by stopped
, который вы увидите куча остановленных служб SQL Right click and start
Чтобы начать - есть 4 проблемы, которые могут вызвать ошибки common LocalDb SqlExpress Sql Server [41], прежде чем вы начнете необходимо переименовать v11 или v12 в (localdb) \ mssqllocaldb
Я обнаружил, что самый простой должен сделать следующее: я приложил pics и шаги для помощи.
Сначала проверьте, какой экземпляр вы установили, вы можете сделать это, проверив реестр и , выполнив команду cmd
cmd> Sqllocaldb.exe i
cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore"
, если этот шаг завершился неудачно, вы можете удалить с помощью опции d
cmd> Sqllocaldb .exe d "someDb" cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"
В дополнение к нарушению первой нормальной формы из-за повторяющейся группы значений, хранящихся в одном столбце, в списках, разделенных запятыми, есть много других более практических проблем:
idlist REGEXP '[[:<:]]2[[:>:]]'
* Чтобы решить эти проблемы, вам нужно написать тонны кода приложения, заново изобрести функциональные возможности, которые СУБД уже обеспечивает гораздо более эффективно .
Списки, разделенные запятыми, настолько ошибочны, что я сделал это первой главой в моей книге: SQL Antipatterns: избегайте ошибок программирования баз данных .
Бывают случаи, когда вам нужно использовать денормализацию, но, поскольку @OMG Ponies упоминает , это исключения. Любая нереляционная «оптимизация» выгодна для одного типа запросов за счет других видов использования данных, поэтому убедитесь, что знаете, какие из ваших запросов нужно обрабатывать так специально, что они заслуживают денормализации.
* MySQL 8.0 больше не поддерживает этот синтаксис выражения слова-границы.
В общем, все может быть оправданным, если оно соответствует требованиям вашего проекта. Это не означает, что люди согласятся или хотят защитить ваше решение ...
В общем, хранение данных таким образом является субоптимальным (например, сложнее выполнять эффективные запросы) и может вызвать проблемы с обслуживанием, если вы изменяете элементы в своей форме. Возможно, вы могли бы найти среднюю землю и вместо нее использовать целое число, представляющее набор битовых флагов?
«Одной из причин была лень».
Это звонит колокола. Единственная причина, по которой вы должны сделать что-то подобное, - это то, что вы знаете, как это сделать «правильно», но вы пришли к выводу, что есть осязаемая причина не делать этого таким образом.
сказал: если данные, которые вы предпочитаете хранить таким образом, - это данные, которые вам никогда не потребуется запрашивать, тогда может быть случай для его хранения в том виде, в котором вы выбрали.
(Некоторые пользователи будет оспаривать заявление в моем предыдущем абзаце, в котором говорится, что «вы никогда не сможете узнать, какие требования будут добавлены в будущем». Эти пользователи либо ошибочны, либо заявляют о религиозной убежденности. Иногда бывает полезно работать с требованиями, которые у вас есть перед вами .)
Мне нужен столбец с несколькими значениями, он может быть реализован как поле xml
. Он может быть преобразован в запятую, если это необходимо
, запрашивающий список XML в sql-сервере, используя Xquery .
Будучи полем xml, некоторые проблемы могут быть устранены.
С CSV: не может гарантировать, что каждое значение является правильный тип данных: нет возможности предотвратить 1,2,3, банан, 5
С XML: значения в теге могут быть принудительно заданы для типа
С CSV: не удается использовать ограничения внешнего ключа для привязки значений к таблице поиска;
С XML: все еще проблема
С CSV: не может обеспечить уникальность: никакой возможности предотвратить 1,2,3,3 , 3,5
С XML: все еще проблема
С CSV: невозможно удалить значение из списка, не извлекая весь список.
С XML: отдельные элементы могут быть удалены
С CSV: трудно найти все объекты с заданным значением в списке; вам нужно использовать неэффективное сканирование таблицы.
С XML: поле xml можно индексировать
С CSV: трудно подсчитать элементы в списке или сделать другой агрегат запросы. **
С XML: не особо сложно
С CSV: трудно присоединить значения к справочной таблице, к которой они ссылаются. **
С XML: не особенно сложно
С CSV: трудно получить список в отсортированном порядке.
С XML: не особо сложно
С CSV: сохранение целых чисел в виде строк занимает в два раза больше места, чем сохранение двоичных целых чисел.
С XML: память еще хуже, чем csv
С CSV: Плюс много запятых.
С использованием XML: теги используются вместо запятых
Короче говоря, использование XML затрагивает некоторые проблемы с ограниченным списком И может быть при необходимости преобразуется в список с разделителями
Да, я бы сказал, что это действительно так плохо.
Он прерывает первую нормальную форму.
Вторая критика заключается в том, что ввод исходных результатов непосредственно в базу данных, без какой-либо проверки или привязки вообще, дает вам возможность открывать атаки SQL-инъекций.
То, что вы называете лень и отсутствие знаний SQL, - это материал, из которого сделаны неофиты. Я рекомендую потратить время, чтобы сделать это правильно, и рассмотреть его как возможность узнать.
Или оставьте это как есть и узнайте болезненный урок атаки SQL-инъекции.
Я бы, вероятно, занял среднюю позицию: сделайте каждое поле в CSV отдельным столбцом в базе данных, но не беспокойтесь о нормализации (по крайней мере пока). В какой-то момент нормализация могла бы стать интересной, но со всеми данными, забитыми в один столбец, вы практически не получаете никакой пользы от использования базы данных вообще. Вам необходимо разделить данные на логические поля / столбцы / все, что вы хотите вызвать, прежде чем вы сможете манипулировать им.
Есть множество вопросов по SO, которые спрашивают:
Еще одна проблема с списком, разделенным запятыми, - обеспечить согласованность значений - сохранение текста означает возможность опечаток ...
Это все симптомы денормализованных данных и подчеркивают, почему вы всегда должны моделировать нормализованные данные. Денормализация может быть оптимизацией запроса, , которая будет применяться, когда сама на самом деле представится .
Ну, я уже более 4 лет использую список разделов вкладки с ключом / значением в столбце NTEXT в SQL Server и работает. Вы теряете гибкость при создании запросов, но, с другой стороны, если у вас есть библиотека, которая сохраняет / держирует пару ключевых значений, это не такая плохая идея.
Да, это , что плохо. Я считаю, что если вам не нравится использование реляционных баз данных, ищите альтернативу, которая вам подходит, есть много интересных проектов NOSQL с некоторыми действительно расширенными функциями.