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

Откуда:
Сообщений: 122
Как создать процедуру по условию?
Очень хочется сделать примерно так:

if OBJECT_ID('procName') is null
create proc procName
as begin
return 1
end
30 сен 11, 15:03    [11363092]     Ответить | Цитировать Сообщить модератору
 Re: Создание процедуры по условию  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
if OBJECT_ID('procName') is null
  exec ('create proc procName as return 1')
go
alter proc procName
as begin
return 1
end 
go
30 сен 11, 15:06    [11363120]     Ответить | Цитировать Сообщить модератору
 Re: Создание процедуры по условию  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Гавриленко Сергей Алексеевич
if OBJECT_ID('procName') is null
  exec ('create proc procName as return 1')
go
alter proc procName
as begin
return 1
end 
go
Ещё короче:
if OBJECT_ID('procName') is null
  exec ('create proc procName as')
go
alter proc procName @P int
as begin
return @P
end
30 сен 11, 15:14    [11363207]     Ответить | Цитировать Сообщить модератору
 Re: Создание процедуры по условию  [new]
Pupkin
Member

Откуда:
Сообщений: 122
Спасибо Вам Сергей Алексеевич!
30 сен 11, 15:18    [11363253]     Ответить | Цитировать Сообщить модератору
 Re: Создание процедуры по условию  [new]
Valera Kochemasov
Member

Откуда: Moscow
Сообщений: 19
if object_id('procName') is not null drop proc procName
go
create proc procName @P int
as begin
return @P
end
1 окт 11, 00:40    [11367106]     Ответить | Цитировать Сообщить модератору
 Re: Создание процедуры по условию  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Valera Kochemasov
if object_id('procName') is not null drop proc procName
go
create proc procName @P int
as begin
return @P
end
Если выполнение скрипта прервётся после удаления процедуры,
все останутся без неё. Тогда как при ALTER PROC хотя бы старая версия останется.
1 окт 11, 11:49    [11367639]     Ответить | Цитировать Сообщить модератору
 Re: Создание процедуры по условию  [new]
Valera Kochemasov
Member

Откуда: Moscow
Сообщений: 19
iap,

Лучше никакой, чем неправильная (её ведь менять требуется!) старая.
1 окт 11, 12:30    [11367712]     Ответить | Цитировать Сообщить модератору
 Re: Создание процедуры по условию  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
А еще права придется перераздавать после drop
1 окт 11, 12:44    [11367743]     Ответить | Цитировать Сообщить модератору
 Re: Создание процедуры по условию  [new]
Valera Kochemasov
Member

Откуда: Moscow
Сообщений: 19
Ray D,

См. первое сообщение: человек спрашивал про CREATE, а не про ALTER.
1 окт 11, 13:08    [11367789]     Ответить | Цитировать Сообщить модератору
 Re: Создание процедуры по условию  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Valera Kochemasov
Ray D,

См. первое сообщение: человек спрашивал про CREATE, а не про ALTER.
CREATE если её нет.
Про DROP там ничего не говорится.
1 окт 11, 16:04    [11368098]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить