Я предполагаю, что полученная вами ошибка:
Ошибка конверсии при преобразовании даты и / или времени из символьной строки.
blockquote>только другая ошибка, которую я мог видеть, что вы получаете от данных, которые вы предоставили, является нарушением
FOREIGN KEY
. Однако, поскольку вы указали, что третийINSERT
прошел, а четвертый использует тот же идентификатор внешнего ключа, это не выглядит так.Итак, причина, по которой вы получаете эту ошибку, из-за того, что
DATEFORMAT
не находится в ожидаемом формате.Стандартная форма представления ANSI
DATE
находится в форматеYYYY-MM-DD
. Формат, который вы предоставили, находится вDD-MM-YYYY
, но по умолчанию для вашего сеанса похоже, что он ожидаетMM-DD-YYYY
, что приводит к тому, что следующие даты интерпретируются вINSERT
:Order_ID Order_Date -------------------------- 1 Feb 02 2015 2 May 08 2015 3 Jan 08 2015 4 (30th month?) 07 2015 ^- This is the part that's erring.
Поскольку ваше намерение выглядит как
DD-MM-YYYY
, вы можете использовать два способа:
- Изменение форматов
DATE
в стандарте ANSI:
Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (1, 'Design User Interface',9345678210123, 1, '2015-08-02'); Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (2, 'Fire',9654693261489, 1, '2015-08-05'); Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (3, 'The Odyssey',9654864332511, 2, '2015-08-01'); Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (4, 'Anatomy',9654877777755, 2, '2015-07-30'); Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (5, 'Surgery',9654864951753, 2, '2015-07-01');
- Измените
DATEFORMAT
для транзакции:
Set DateFormat dmy Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (1, 'Design User Interface',9345678210123, 1, '02-08-2015'); Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (2, 'Fire',9654693261489, 1, '05-08-2015'); Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (3, 'The Odyssey',9654864332511, 2, '01-08-2015'); Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (4, 'Anatomy',9654877777755, 2, '30-07-2015'); Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (5, 'Surgery',9654864951753, 2, '01-07-2015');
Я лично рекомендовал бы первый вариант, так как это лучшая привычка вступать в привязку дат.
Связь
Свободный: Вы и парень в мини-маркете. Вы связываетесь через четко определенный протокол для достижения соответствующих целей - Вы платите деньги, он позволяет Вам выйти с мешком Cheetos. Любой из Вас может быть заменен, не разрушая систему.
Трудный: Вы и Ваша жена.
Сцепление
Низко: мини-маркет. Вы идете туда для всего от газа до молока к банковскому делу ATM. Товары и услуги имеют мало общего, и удобства наличия их всех в одном месте не может быть достаточно для возмещения получающегося увеличения стоимости и уменьшения по качеству.
Высоко: хранилище сыра. Они продают сыр. Ничто иное. Не может разбить их когда дело доходит до сыра все же.
Связываясь - мера того, насколько модуль (пакет, класс, метод) полагается на другие модули. Желательно уменьшить связь или уменьшить сумму, что данный модуль полагается на другие модули системы.
Сцепление - мера того, насколько тесно связанный участники (классы, методы, функциональность в рамках метода) модуля другим членам того же модуля. Желательно увеличить сцепление, поскольку это указывает, что модуль имеет очень определенную задачу и делает только ту задачу.
Одним из лучших всесторонних обсуждений понятий разработки программного обеспечения, связанных с OO (включая эти), является Bertrand Meyer Разработка объектно-ориентированного программного обеспечения .
Относительно 'связи', он дает свою Слабую Связь / Маленькое правило Интерфейсов следующим образом:
, Если два модуля связываются, они должны обмениваться как можно меньшей информацией.
материал Meyer, связанный со сцеплением, никогда не сводится к единственному содержательному оператору, но я думаю это предложение от Steve McConnell , Код, Завершенный , подводит итог его вполне прилично:
Сцепление относится к тому, как тесно все стандартные программы в классе или весь код в стандартной программе поддерживают центральную цель
Быстрый-и-грязный способ измерить связь состоит в том, чтобы измерить Ваш import
(или подобный) операторы.
"Связь является мерой взаимозависимостей между модулями, которые должны быть минимизированы" "сцепление, качество, которое будет максимизироваться, внимание на отношения между операциями, выполненными каждым модулем".
заключенный в кавычки из данной статьи: http://steve.vinoski.net/pdf/IEEE-Old_Measures_for_New_Services.pdf
Связь означает зависимость от других.
Сплоченность означает целостность с самим собой.