Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как заполнить столбик таблицы.  [new]
Anna Nodelman
Member

Откуда:
Сообщений: 1
Мне нужно добавить столбик к существующей таблице и заполнить его данными.
Мой код выглядит вот так:

create proc sp_add_active_loan 
	as
begin

alter table Accounts 

add ActiveLoan bit

update Accounts
set Accounts.ActiveLoan = (
			               select 
				               (case when
					                      Loans.LoanAmount > Loans.AmountPaid 
				               then 1
				               else 0
				               end )as Ac_L
             			       from
				              Loans 
				              left join
				              Accounts 
				              on Loans.AccountID = Accounts.ID
			              )
end

	GO
exec sp_add_active_loan


SQL Server выдает ошибку в строке
set Accounts.ActiveLoan =

Ошибка такая - column name in table is specified more than once
Я что-то топчусь на одном месте и не понимаю, как я могу записать данные в этот столбик. Кажется так просто, но я что-то упускаю все время.
Спасибо заранее.
24 янв 15, 23:34    [17165128]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить столбик таблицы.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31442
Anna Nodelman
Мне нужно добавить столбик к существующей таблице и заполнить его данными.
Мой код выглядит вот так:
Нельзя добавить столбик в процедуре, и там же его использовать. Компиляция процедуры делается перед выполнением, и компилятор не может делать код для использования несуществующего столбца.

Вообще абсурдная задача. Это как - одноразовая процедура? Как она может быть вызвана второй раз, даже если такой код был бы возможен?

Неправильно задачу решаете, у вас какая то проблема в постановке задачи.
25 янв 15, 00:26    [17165278]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить столбик таблицы.  [new]
o-o
Guest
Anna Nodelman
Ошибка такая - column name in table is specified more than once


проапдэйтить можно и в соседнем batch-е, запустив update в EXEC-е.
но ошибка в другом.
Anna Nodelman запустилa процедуру при имеющейся уже колонке ActiveLoan.
я думаю, раз не компилировалось из-за ее отсутствия, она добавилa ActiveLoan ручками,
ну и добавляет теперь во второй раз уже из процедуры
25 янв 15, 01:00    [17165358]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить столбик таблицы.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31442
o-o
я думаю, раз не компилировалось из-за ее отсутствия, она добавилa ActiveLoan ручками,
ну и добавляет теперь во второй раз уже из процедуры
А, действительно, текст ошибки я не прочитал :-)
25 янв 15, 02:01    [17165463]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить