Loading...
VenelinGrozev avatar VenelinGrozev 130 Точки

Малко помощ за Problem 22 от домашното Advanced SQL

Някой би ли споделил решение си на тази задача. Моето упорито връща долната грешка

Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the nvarchar value 'rtamburello' to data type int.

Заявката ми изобщо не е сложна -- искам да вкарам един ред в таблицата Users

insert into Users (Username, Password, FullName, LastLogin, GroupID)
select
    convert(nvarchar(50), concat(substring(e.FirstName, 1, 1), lower(e.LastName))) as Username,
    convert(nvarchar(50), concat(substring(e.FirstName, 1, 1), lower(e.LastName))) as Password,
    convert(nvarchar(50), concat(e.FirstName, ' ', e.LastName)) as FullName,
    NULL,
    NULL
from Employees e
where e.EmployeeID = 3

Уж типовете на колоните съвпадат навсякъде, експлицитно се конвертират но явно, че нещо пропускам само не мога да разбера какво.

Тагове:
0
Databases Basics
pepster avatar pepster 69 Точки

И аз имам въпрос по тази задача - Как сте заобиколили следните проблеми :

1. Първия ми проблем е свързан е с CHEK CONSTRAINT на колона Password - т.като има в Employees записи, които формират парола с по-малко от 5 симола. Няма доп.инфо в условието дали и как да се дообработят тези записи.

2.Втория проблем е свързан с UNIQUE CONSTRAINT на USerName-a. В Employees има 2 записа, които при преопразуването си дават еднакви UsarName а именно усърнейма Ahill:

185    Andrew    Hill
264    Annette    Hill

Няма нищо по-лесно и това тези констраинти .. да се дропнат преди инсърта .. но... в реалността те се слагат с цел .... та ...  как сте заобиколили дропването ?

0
verito898 avatar verito898 265 Точки

аз реших проблема с drop  ,но ще следя темата за евентуални други решения

0
01/07/2015 17:02:15
nick.genov avatar nick.genov 104 Точки

Аз ги махнах за да мине инсърта, с ALTER TABLE.

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Аз го направих по следния начин:

  • Първо проверявам дали в таблицата съществува този Constraint:
IF (OBJECT_ID('CK_Users_Password') IS NOT NULL)
BEGIN
	ALTER TABLE Users DROP CONSTRAINT CK_Users_Password;
END
GO
  • Изпълнявам кода за конкретния problem
  • Връщам си отново Check-a
ALTER TABLE Users WITH NOCHECK ADD
CONSTRAINT CK_Users_Password CHECK (LEN(Password)>= 5)
GO

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.