webForumDet fria alternativet

Variabel

6 svar · 211 visningar · startad av SteveP

StevePMedlem sedan mars 2003772 inlägg
#1
CREATE PROCEDURE spLCPPhotosMainNew
	
AS

Declare @Position Varchar(150)

Set @Position = Null

SET NOCOUNT ON

INSERT INTO TblContacts
	(
	Position
	)

VALUES
	(
	@Position
	)

SELECT @@IDENTITY AS NewID
GO

ContactID är Autonumber i denna tabellen så ett nytt ContactID kommer skapas automatiskt.
Vad jag vill göra är att sätta in en tom post i tabellen tblContacts och spara det nya ContactID't som skapas i en Variabel kallad @NewID för att sedan göra en ytterligare Insert i en annan tabell och stoppa in @NewID i en kolumn.

Hur skulle detta se ut ?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Något sånt här:

CREATE PROCEDURE spLCPPhotosMainNew
	
AS

[b]Declare @Position Varchar(150),
@NewID int[/b]

Set @Position = Null

SET NOCOUNT ON

INSERT INTO TblContacts
	(
	Position
	)

VALUES
	(
	@Position
	)

[b]SELECT @NewID = @@IDENTITY[/b]
GO

Sedan borde det bara vara att använda @NewID i proceduren.

Mvh

StevePMedlem sedan mars 2003772 inlägg
#3

Ok och hur gör jag nästa insert i samma procedure? Måste jag köra en END innan jag går på nästa insert?

StevePMedlem sedan mars 2003772 inlägg
#4

Såhär kanske?

CREATE PROCEDURE spLCPPhotosMainNew
	
AS

Declare @Position Varchar(150),

@NewID int

Set @Position = Null

SET NOCOUNT ON

INSERT INTO TblContacts
	(
	Position
	)

VALUES
	(
	@Position
	)

SELECT @NewID = @@Identity

Insert into tblLCPContactDetails (ContactID, LCPCode) Values (@NewID, 'None')

Insert into tblContactPictures (ContactID) Values(@NewID)
GO
StevePMedlem sedan mars 2003772 inlägg
#5

Det fungerar inte.. den gör inte dom andra 2 insertsen.

StevePMedlem sedan mars 2003772 inlägg
#6

Så här blev bättre

Declare @Position Varchar(150),

@NewID int

Set @Position = Null

SET NOCOUNT ON

INSERT INTO TblContacts
    (
    Position
    )

VALUES
    (
    @Position
    )

SELECT @NewID = Max(ContactID) from tblContacts

Insert into tblLCPContactDetails (ContactID, LCPCode) Values (@NewID, 'None')

Insert into tblLCPContactPictures (ContactID) Values(@NewID)
GO
StevePMedlem sedan mars 2003772 inlägg
#7

Det är nog iofs säkrare att använda sig av scope_identity() ifall nån annan kör igång SP'n exakt samtidigt.

SELECT @NewID = scope_Identity()
130 ms totalt · 3 externa anrop · v20260731065814-full.b943c234
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)