Grzesiek [ - ! F a f i k ! - ]
Procedura składowana SQL 2005 - proszę o pomoc !
Mam problem przy tworzeniu procedury. Mianowicie chcę, by pierw został wyciągnięty pewien numer z określonej tabeli, czyli:
SELECT ID from aspnet_Users WHERE (UserID = @UserID)
Następnie chcę, by w jakiś sposób wyciągnięte w ten sposób pole ID znalazło się w parametrach wstawiania nowego wiersza:
-------------------------------------------------------------------------------------------
ALTER procedure AddTopic
@user_id int,
@topic_katId int,
@topic_title nvarchar(256),
@post_content nvarchar(max)
as
insert into [forum_topics] (topic_title, topic_userId,topic_katId)
values (@topic_title, @user_id, @topic_katId)
insert into [forum_posts] (topic_id, user_id,post_content)
values (scope_identity(), @user_id, @post_content)
Return
-------------------------------------------------------------------------------------------
Tak wygląda obecnie moja procedura. Chciałbym jeszcze wlepić tam w jakiś sposób tego SELECTA i wynik jego zawrzeć w miejscu @user_id.
Mógłby mi ktoś pomóc w tym temacie ? :-)
Grzesiek [ - ! F a f i k ! - ]
^
Grzesiek [ - ! F a f i k ! - ]
Nikt nie siedzi w temacie ?
Grzesiek [ - ! F a f i k ! - ]
^
ElNinho [ Konsul ]
no zaraz a na poczatku nie mozesz zrobic SELECT .... INTO @user_id FROM .... ?
Grzesiek [ - ! F a f i k ! - ]
ElNinho ---> ja potrzebuję mieć tego selecta i te dwa inserty w jednej procedurze składowanej. Chodzi o to, bym przypisal jakiejś zmiennej wynik selecta, a następnie użył go w insertach. Jednak nie wiem jak to zrobić.
wysia [ Generaďż˝ ]
Normalnie. SELECT INTO @zmienna, a potem INSERT VALUES (@zmienna). Co nie dziala?
Grzesiek [ - ! F a f i k ! - ]
wysia ---> czyli "SELECT ID INTO @zmienna from aspnet_Users where UserID=@UserID" ?
ElNinho [ Konsul ]
dokladnie
Grzesiek [ - ! F a f i k ! - ]
Niestety nie działa.
W tym przypadku:
ALTER procedure AddTopic
@UserId nvarchar(256),
@topic_katId int,
@topic_title nvarchar(256),
@post_content nvarchar(max),
@ID int
as
SELECT uID INTO @ID from aspnet_Users where UserID=@UserID
insert into [forum_topics] (topic_title, topic_userId,topic_katId)
values (@topic_title, @ID, @topic_katId)
insert into [forum_posts] (topic_id, user_id,post_content)
values (scope_identity(), @ID, @post_content)
Return
Błąd składni tam, gdzie pogrubione. Jeśli opuszczę "@" przy Select uID INTO ... to nie mam jak się odwołać w insertach do wartości z Selecta ...
ElNinho [ Konsul ]
może to Ci się przyda szczerze powiedziawszy nie znam za bardzo składni SQL Server 2005, w Oraclu "siedzę" :)

Grzesiek [ - ! F a f i k ! - ]
Szukam nieustannie i nie znajduję rozwiązania żadnego...
Grzesiek [ - ! F a f i k ! - ]
Ktoś wie ?

YogiYogi [ Konsul ]
Nie mam teraz pod reka mojego uluiobionego 2005 al to przeciez robisz tak:
SELECT uID = @ID from aspnet_Users where UserID=@UserID
bo przeciez nie wrzucasz do tabeli ani nie korzystasz z kursora wiec po co into w prostym selectcie.
Potem insertujesz jak trzeba ot i cala filozofia
Grzesiek [ - ! F a f i k ! - ]
YogiYogi ---> wielkie dzięki :-) O to chodziło.
Może masz jakieś ciekawe książki/ebooki/tutoriale odnośnie procedur, bo wczoraj przetrząsnąłem internet i nic nie wyszukałem, co by mi mogło pomóc ...

YogiYogi [ Konsul ]
Grzesiek -->
:)
Po ponad 7 latach praktyki z MSSQLem to jakos tak moge stwierdzic, ze najlepsza jednak byla dokumentacja Microsoftu :)
Tam jest wszystko wraz z przykladami.
Pytanie co Cie bardziej interesuje w tej chwili - programowanie w T-SQLu czy administracja serwerem ?