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.
5 svar · 310 visningar · startad av Dino
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?
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.
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?
string sql = "set nocount on INSERT INTO Add(Add_a, Add_b) VALUES(@a,@b) select scope_identity()";
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()