DinoMedlem sedan sep. 20011 918 inlägg
SQLEXPRESS
Hade tänkt att skicka en fråga så här:
string sql = "INSERT INTO Add(Add_a, Add_b) VALUES(@a,@b) return @@IDENTITY";
Men får fel, kollade då att man skulle kunna göra så här.
string sql = @"USE Tester
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'Add_Save' AND type = 'P')
DROP PROCEDURE Add_Save
GO
USE Tester
GO
CREATE PROCEDURE Add_Save
AS
INSERT INTO Add(Add_a, Add_b) VALUES(@a,@b)
return @@IDENTITY
GO";
Men i båda fallen så får jag felmeddelandet:
A RETURN statement with a return value cannot be used in this context.
Så måste jag använda en sp, eller finns det någon annan lösning?
@ndersMedlem sedan juni 200026 914 inlägg
Inled med SET NOCOUNT ON, avsluta med SELECT @@IDENTITY.
edit: ser nu att du skrivit SQLEXPRESS. Det vet jag inte vad det är, så ovanstående fungerar antagligen inte. :)
LarsGMedlem sedan dec. 200012 465 inlägg
Byt
SELECT @@IDENTITY
mot
SELECT scope_identity()
DinoMedlem sedan sep. 20011 918 inlägg
SQLEXPRESS är SQLServer fast med lite begränsningar. Dock helt grattis.
Får det inte att fungera. Var skall jag skriva det i den fösta sqlen eller den andra?
LarsGMedlem sedan dec. 200012 465 inlägg
string sql = "set nocount on INSERT INTO Add(Add_a, Add_b) VALUES(@a,@b) select scope_identity()";
DinoMedlem sedan sep. 20011 918 inlägg
Ok, får det att fungera i SQLExpress Manager(SQLExpress variant av Query Analyzer), men inte från min kod. Så jag får höra mig vidare från folk i de kretsarna.
Tack för hjälpen.
red// Så här blev det till slut.
"set nocount on INSERT INTO ABC(A, B, C) VALUES(@a,@b,@c);SELECT @d = scope_identity()