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

Откуда: азербайджан,баку
Сообщений: 518
привет ребята

мой скрипт так


delete from numbers

declare @i as int 
set @i = 3440000  

while(@i < 3442047) 
begin    
    insert into numbers values(@i) 
    set @i = @i+1 
end

select ph from numbers where ph not in(
select phone from 
 phone where phone >=3440000  and phone<=3442047
)

запрос работает отлично
и
резултат етого запроса 144 строк


и я создал процедура етого запроса


изменил 3442047 на @t1

и создал такой процедура

create alter proc trt 
@i  int,
@t1 int
as 
delete  from numbers
while(@i < @t1) 
begin    
    insert into numbers values(@i) 
    set @i = @i+1 
end
select ph from numbers where ph not in(
select phone from 
 phone where phone >=@i  and phone<=@t1
)



exec dbo.trt @i=3440000,@t1=3442047

но резултат етого запроса

2047 строк

значит в прочедуры не работает
етот скрипт

select ph from numbers where ph not in(
select phone from 
 phone where phone >=@i  and phone<=@t1
)



кто то может советоват как я могу изменит етот процедуры?
21 апр 14, 10:02    [15909193]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
iap
Member

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

phone where phone >=@i  and phone<=@t1
Чему здесь равно @i?
В результате выполнения цикла @i=@t1=3442047
21 апр 14, 10:10    [15909226]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
iap,

я же записал в прос

create alter proc trt
@i int,
@t1 int


и

явно передал параметры прос


exec dbo.trt @i=3440000,@t1=3442047
21 апр 14, 10:15    [15909244]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
yaxta
iap,

я же записал в прос

create alter proc trt
@i int,
@t1 int


и

явно передал параметры прос


exec dbo.trt @i=3440000,@t1=3442047
while(@i < @t1) 
begin    
    insert into numbers values(@i) 
    set @i = @i+1 
end
К @i прибавляется 1 (3442047-3440000+1) раз. Так?
А потом получившуюся @i применяете в SELECTе
21 апр 14, 10:18    [15909260]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
iap,

я изменил скрипт процедуры

так

alter proc trt 
@i  int,
@t1 int
as 
delete  from numbers
while(@i <@t1-@i+1) 
begin    
    insert into numbers values(@i) 
    set @i = @i+1 
end
select ph from numbers where ph not in(
select phone from 
 phone where phone >=@i  and phone<=@t1
)



exec dbo.trt @i=3440000,@t1=3442047

но сейцас вообше нет резултата
резултат запроса

(строк обработано: 0)

(строк обработано: 0)


где то я не верно записал ?
или не понил вас?
21 апр 14, 10:35    [15909350]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
iap
Member

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

Вы программист?
Больше не могу. Пойду я.... До свидания!
21 апр 14, 10:37    [15909365]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
Glory
Member

Откуда:
Сообщений: 104751
yaxta
где то я не верно записал ?
или не понил вас?

Как вы думате, после цикла
while(@i <@t1-@i+1)
begin
set @i = @i+1
end
в переменной @i какое будет значение ?
И какой результат вернет запрос select phone from phone where phone >=@i and phone<=@t1 для этого значения @i ?
21 апр 14, 10:38    [15909369]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
Glory,

я просто тестировал
советы iap

К @i прибавляется 1 (3442047-3440000+1) раз. Так?
21 апр 14, 10:41    [15909388]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
Glory
Member

Откуда:
Сообщений: 104751
yaxta
Так?

Мы в Поле чудес играем что ли ?
Что вам лично мешает узнать, какие значения ваши переменные в вашей же процедуре имеют
- до цикла
- и после цикла
21 апр 14, 10:43    [15909398]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
Glory,

да
скрипт после цикла нормално не работает
21 апр 14, 10:49    [15909433]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
yaxta,

select ph from numbers where ph not in(
select phone from 
 phone where phone >=@i  and phone<=@t1
)
21 апр 14, 10:50    [15909447]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
Glory
Member

Откуда:
Сообщений: 104751
yaxta
скрипт после цикла нормално не работает

Ну так и используйте тогда скрипт "после цикла"
21 апр 14, 10:50    [15909449]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
Glory,

друг етот скрипт отлично работает

delete from numbers

declare @i as int 
set @i = 3440000  

while(@i < 3442047) 
begin    
    insert into numbers values(@i) 
    set @i = @i+1 
end

select ph from numbers where ph not in(
select phone from 
 phone where phone >=3440000  and phone<=3442047
)



как я могу создат процедуры для етого скрипта ?
сдес 2 параметра по мое мнение
21 апр 14, 10:53    [15909467]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
yaxta,


1 -й 3440000

2-й 3442047

и нужен удалит и вставит таблицу numbers
21 апр 14, 10:56    [15909486]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
Glory
Member

Откуда:
Сообщений: 104751
yaxta
друг етот скрипт отлично работает

delete from numbers

declare @i as int 
set @i = 3440000  

while(@i < 3442047) 
begin    
    insert into numbers values(@i) 
    set @i = @i+1 
end

select ph from numbers where ph not in(
select phone from 
 phone where phone >=3440000  and phone<=3442047
)

Друг, почему в этом скрипте where phone >=3440000 and phone<=3442047, а не where phone >=@i and phone<=@t1 ?
21 апр 14, 10:57    [15909493]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
[/quot]
Друг, почему в этом скрипте where phone >=3440000 and phone<=3442047, а не where phone >=@i and phone<=@t1 ?[/quot]

друг я же записал ето в процедуры

create alter proc trt 
@i  int,
@t1 int
as 
delete  from numbers
while(@i < @t1) 
begin    
    insert into numbers values(@i) 
    set @i = @i+1 
end
select ph from numbers where ph not in(
select phone from 
 phone where phone >=@i  and phone<=@t1
)


возможно я процедуры не корректно записал
21 апр 14, 11:04    [15909535]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
Glory
Member

Откуда:
Сообщений: 104751
yaxta
друг я же записал ето в процедуры

Слушай, круто
Тестирую один скрипт, а в процедуру пишу другой.
21 апр 14, 11:05    [15909542]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
iap
Member

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

Можете в цикле использовать другую переменную?
Специально для этого объявленную?
21 апр 14, 11:06    [15909554]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
iap
yaxta,

Можете в цикле использовать другую переменную?
Специально для этого объявленную?



друзя

1 -й я удаляю таблицу numbers


delete from numbers


2- й добавляю номеры етого таблицу цикла

while(@i < 3442047)
begin
insert into numbers values(@i)
set @i = @i+1
end


3-й выбираю нужную номеры из етого таблицу

select ph from numbers where ph not in(
select phone from
phone where phone >=3440000 and phone<=3442047
)


и здес изменяю 3440000 на @i и 3442047 на @t1

и записаю процедуры


create alter proc trt 
@i  int,
@t1 int
as 
delete  from numbers
while(@i < @t1) 
begin    
    insert into numbers values(@i) 
    set @i = @i+1 
end
select ph from numbers where ph not in(
select phone from 
 phone where phone >=@i  and phone<=@t1
)




а сдес что не верно незнаю но резултат неверно
21 апр 14, 11:20    [15909649]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
Glory
Member

Откуда:
Сообщений: 104751
yaxta
а сдес что не верно незнаю но резултат неверно

Сколько раз еще нужно попросить проверить значение в переменной @i перед вызовом запроса
select ph from numbers where ph not in(
select phone from
phone where phone >=@i and phone<=@t1
)
21 апр 14, 11:33    [15909728]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
Glory
yaxta
а сдес что не верно незнаю но резултат неверно

Сколько раз еще нужно попросить проверить значение в переменной @i перед вызовом запроса
select ph from numbers where ph not in(
select phone from
phone where phone >=@i and phone<=@t1
)



я изменил структуру процедуры
так
создал новый параметр @t2
сейцас работает отлицно

и получил резултат как я хочу



alter proc trt 
@t1 int,
@t2 int
as 
delete  from numbers
declare @i  int
set @i=@t1
while(@i <@t2) 
begin    
    insert into numbers values(@i) 
    set @i = @i+1 
end
select ph from numbers where ph not in(
select phone from 
 phone where phone >=@t1  and phone<=@t2
)




спасибо вам Glory
спасибо вам iap

спасибо за вниманию и советы
21 апр 14, 11:49    [15909847]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
Arm79
Member

Откуда: МО, Раменское
Сообщений: 3695
create alter proc trt 
@i  int,
@t1 int
as 
delete  from numbers

-- здесь
declare @iiii int
set @iiii = @i


while(@i < @t1) 
begin    
    insert into numbers values(@i) 
    set @i = @i+1 
end
select ph from numbers where ph not in(
select phone from 

 -- здесь
 --phone where phone >=@i  and phone<=@t1
  phone where phone >=@iiii  and phone<=@t1
)
21 апр 14, 11:52    [15909868]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
А что такое
create alter proc trt
???
Как можно писать такое?
21 апр 14, 11:55    [15909894]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
iap
А что такое
create alter proc trt
???
Как можно писать такое?



новерно новый sql для терминаторов
21 апр 14, 11:59    [15909927]     Ответить | Цитировать Сообщить модератору
 Re: создания проедура  [new]
Lanselot
Member

Откуда:
Сообщений: 76
Похоже на тупой троллинг
21 апр 14, 15:32    [15911419]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить