Entry tags:
ON ProjectCarrier.ProjectId = ProjectCarrier.ProjectId
Вот примерно такое условие, как в сабже, встретил вчера в продакшен-коде, в двух местах.
Понятно, что таких ошибок от невнимательности и опечаток возникает масса, и я боюсь предположить, сколько их в нашей базе кода.
Посему вопрос: не встречались ли уважаемые колеги с автоматическими тулзами, умеющими такие косяки отлавливать, по схеме базы данных, например?
Хочется запустить что-то такое и ужаснуться. Самому писать не хочется:)
Понятно, что таких ошибок от невнимательности и опечаток возникает масса, и я боюсь предположить, сколько их в нашей базе кода.
Посему вопрос: не встречались ли уважаемые колеги с автоматическими тулзами, умеющими такие косяки отлавливать, по схеме базы данных, например?
Хочется запустить что-то такое и ужаснуться. Самому писать не хочется:)
no subject
no subject
no subject
(мне смайлик побольше поставить?) :-)
Просто, когда я обнаружил это в питоне, то очень порадовался :-)
no subject
no subject
no subject
no subject
no subject
no subject
no subject
ON ProjectCarrier.ProjectId = ProjectId
Имелось в виду поле ProjectId из другой таблицы, но у парсера SQL свой взгляд на это:) И его нужно учитывать. Под "простой повтор" такая штука уже не подпадает...
no subject
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
no subject
Сам не пробовал. Ну и у нас SQL код отличный же =)
no subject
no subject
no subject
no subject