Avatar billede sbjerre Nybegynder
30. januar 2003 - 15:18 Der er 4 kommentarer og
1 løsning

hjælp til Stored procedure

Jeg skal bruge et id fra en tabel udfra en mailadresse der gives med ved kaldet til denne stored procedure

Som man nok kan se er jeg ikke voldsomt meget inde i SP i SQL, men man kan næsten se hvad det er jeg vil ud fra koden herunder

***************************************************

CREATE PROCEDURE [dbo].[InsertBooking]
(
  @createdby int,
  @responsible int,
  @noparticipents int,
  @invoiceto varchar(255),
  @subject varchar(255),
  @description varchar(255),
  @date real,
  @starttime real,
  @endtime real,
  @createdtime int,
  @roomid int,
  @useremail varchar(255)
)
AS

  DECLARE @user_id int

  SET @user_id = select user_id from users where @user_email = @useremail

insert into bookings (booking_createdby, booking_responsible, booking_noparticipents, booking_invoiceto, booking_subject, booking_description, booking_date, booking_starttime, booking_endtime, booking_createdtime, room_id) values (@user_id, @responsible, @noparticipents, @invoiceto, @subject, @description, @date, @starttime, @endtime, @createdtime, @roomid)
GO

*************************************************

udfra mailadressen der sendes med (useremail) skal jeg udtrække et id (user_id) fra tabellen users og derefter bruge id'et til at indsætte i en tabel.
Når jeg har fundet ud af dette problem skal denne SP udbygges så den ligeledes kan indsætte i flere tabeller, så hvis der er nogen der kender til det er I ligeledes velkomne til at skrive et eksempel om det.

Vh sbjerre
Avatar billede cbp Nybegynder
30. januar 2003 - 16:07 #1
SET @user_id = select user_id from users where @user_email = @useremail
skal være:
  select @user_id = user_id from users where @user_email = @useremail
Avatar billede sbjerre Nybegynder
30. januar 2003 - 16:11 #2
har selv fundet ud af det. Hvis nogle skulle være interesseret så ser det ud som følger:

CREATE PROCEDURE [dbo].[InsertBooking]
(
  @createdby int,
  @responsible int,
  @noparticipents int,
  @invoiceto varchar(255),
  @subject varchar(255),
  @description varchar(255),
  @date real,
  @starttime real,
  @endtime real,
  @createdtime int,
  @roomid int,
  @useremail varchar(255)
)
AS

  DECLARE @user_id int

DECLARE tCursor CURSOR For
select user_id from users where user_email = @useremail
OPEN tCursor
FETCH NEXT FROM tCursor
INTO @user_id

insert into bookings (booking_createdby, booking_responsible, booking_noparticipents, booking_invoiceto, booking_subject, booking_description, booking_date, booking_starttime, booking_endtime, booking_createdtime, room_id) values (@user_id, @responsible, @noparticipents, @invoiceto, @subject, @description, @date, @starttime, @endtime, @createdtime, @roomid)
GO
Avatar billede sbjerre Nybegynder
30. januar 2003 - 16:13 #3
...
Avatar billede cbp Nybegynder
30. januar 2003 - 16:45 #4
Min løsning er nu væsentlig bedre. Der er absolut ingen grund til at skulle oprette en cursor for at trække en variabel ud.
Avatar billede sbjerre Nybegynder
03. februar 2003 - 11:56 #5
->> cbp
det vil jeg lige få rettet
Det ser 100 gange bedre ud det du har lavet, og langt mere overskueligt.
Jeg havde skrevet mit eget indlæg inden jeg så dit.

Tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester