Малко помощ за 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
Уж типовете на колоните съвпадат навсякъде, експлицитно се конвертират но явно, че нещо пропускам само не мога да разбера какво.
Това е кода за създаване на таблицата
CREATE TABLE Users (
UserID int IDENTITY,
Username nvarchar(50) NOT NULL UNIQUE,
Password nvarchar(50) NOT NULL CHECK(Password > 5),
FullName nvarchar(50) NOT NULL,
LastLogin date
CONSTRAINT PK_Users PRIMARY KEY (UserID ASC)
)
Тук е проблема: CHECK(Password > 5)
Трябва да е:
CHECK(LEN(Password) > 5)
Опитваш се да сравниш 5 и nvarchar, няма как. LEN ти връща дължината на паролата, което всъщност ти трябва.
Тръгна сега, много ти благодаря! Поне 5 пъти го гледах този check и така и не се усетих.