webForumDet fria alternativet

uppdatera värde på inskickad kolumn

Databaser & SQL

4 svar · 534 visningar · startad av Vinnaren

Medlem sedan sep. 2005833 inlägg
Frågan#1

har följande:

ALTER PROCEDURE updateStyle
(
	@BloggID int,
	@cell varchar(20),
	@Values int
)
AS
BEGIN
	UPDATE blogg
	SET @cell = @Values
	WHERE bID = @BloggID

Databas: MSSQL

Ingenting händer, inget felmeddelande. Hur löser man detta? eller går det inte att göra såhär?

Medlem sedan feb. 200722 inlägg
#2

Vet inte riktigt vad du vill göra, men tycker spontant raden
SET @cell = @Values
ser konstig ut.
Den ändrar väl bara värdet på den inskickade variabeln?? (Eller så är det jag som är ute och cyklar.)
Är det "set cell=@cell, values=@Values" du istället borde skrivit?

Hm, eller förresten... Du kanske använder @cell för att tala om vilken kolumn/cell du vill ändra? Där går jag bet i så fall. Visste inte att man kan göra så.

Medlem sedan sep. 2005833 inlägg
#3

@cell är tänkt att innehålla namnet på den cell man vill uppdatera i tabellen, samt value är det värdet som ska in i kolumnen som finns i @cell.

Vet inte om det går, någon som vet :q

Medlem sedan juni 200032 967 inlägg
#4

du får använda dynamisk sql.

declare @tmp varchar(4000)
set @tmp = 'UPDATE blogg SET ' + @cell + ' = ' + convert(varchar(20), @Values)
set @tmp = @tmp + ' WHERE bID = ' + convert(varchar(20), @BloggID)
exec (@tmp)

Typ.

Medlem sedan sep. 2005833 inlägg
#5

Tack @nders :bire

267 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)