Qualcosa del genere:
codice:
CREATE PROCEDURE [dbo].[updinv]
AS
DECLARE
@get_id AS CURSOR,
@itype AS SYSNAME,
@iupgr AS FLOAT,
@igame AS INT
SET @get_id = CURSOR FOR SELECT itype, iupgr, igame FROM investimenti /*WHERE pgameon = 1*/
SET @itype = ''
SET @iupgr = ''
SET @igame = ''
OPEN @get_id
FETCH NEXT FROM @get_id INTO @itype, @iupgr, @igame
WHILE @@FETCH_STATUS = 0
BEGIN
SET @itype = 'p' + @itype
UPDATE popolazione SET @itype = @itype + @iupgr
WHERE pid = @igame
FETCH NEXT FROM @get_id INTO @itype, @iupgr, @igame
END
CLOSE @get_id
DEALLOCATE @get_id
Solo che @itype non viene considerato il nome del recordset, bensì una semplice stringa. Quindi mi restituisce l'errore:
Error: Si è verificato un errore durante la conversione del tipo di dati da nvarchar a float.
Qualche idea?