Вот примерно такое условие, как в сабже, встретил вчера в продакшен-коде, в двух местах.
Понятно, что таких ошибок от невнимательности и опечаток возникает масса, и я боюсь предположить, сколько их в нашей базе кода.
Посему вопрос: не встречались ли уважаемые колеги с автоматическими тулзами, умеющими такие косяки отлавливать, по схеме базы данных, например?
Хочется запустить что-то такое и ужаснуться. Самому писать не хочется:)
Понятно, что таких ошибок от невнимательности и опечаток возникает масса, и я боюсь предположить, сколько их в нашей базе кода.
Посему вопрос: не встречались ли уважаемые колеги с автоматическими тулзами, умеющими такие косяки отлавливать, по схеме базы данных, например?
Хочется запустить что-то такое и ужаснуться. Самому писать не хочется:)
no subject
Date: 2013-08-06 04:25 pm (UTC)ON ProjectCarrier.ProjectId = ProjectId
Имелось в виду поле ProjectId из другой таблицы, но у парсера SQL свой взгляд на это:) И его нужно учитывать. Под "простой повтор" такая штука уже не подпадает...
no subject
Date: 2013-08-06 06:21 pm (UTC)Msg 209, Level 16, State 1, Line 10.Ambiguous column name 'projectid'.
Пробовал вот так:
declare @ProjectCarrier table(
ProjectId INT NOT NULL
)
declare @Project table(
ProjectId INT NOT NULL
)
select * from @ProjectCarrier pc
inner join @project on pc.ProjectId = ProjectId
Ты что-то скрываешь!
no subject
Date: 2013-08-06 06:38 pm (UTC)no subject
Date: 2013-08-06 06:45 pm (UTC)Сам не пробовал. Ну и у нас SQL код отличный же =)
no subject
Date: 2013-08-06 06:48 pm (UTC)no subject
Date: 2013-08-06 06:49 pm (UTC)