0
J'essaie d'utiliser un curseur pour déplacer créer une colonne qui a toutes les parties égales à un champ qui était avant lui. Dans l'exempleSql - Question sur les curseurs et les variables
| column1 | column 2 |
| 1 | a |
| 2 | b |
| 3 | c |
would to go...
| column1 | column2 | column3 |
| 1 | a | b |
| 2 | b | c |
| 3 | c | NULL |
Donc, pour ce faire, je tentais à l'aide d'un curseur et une instruction de mise à jour sur la dernière instruction fetch comme ci-dessous:
DECLARE myCursor1 CURSOR READ_ONLY
FOR
SELECT lname AS 'lnamerecoff'
FROM testingThis
ORDER BY lname
OPEN myCursor1
DECLARE @previous char(15)
DECLARE @new char(15)
SET @previous = FETCH NEXT FROM myCursor1
IF NOT EXISTS(SELECT * FROM sys.columns WHERE name = 'lnamerecoff'
AND object_id = OBJECT_ID('testingThis'))
ALTER TABLE testingThis ADD lnamerecoff int
WHILE @@FETCH_STATUS = 0
BEGIN
SET @new = FETCH NEXT FROM myCursor1
UPDATE testingThis
SET lnamerecoff = @new
SET @previous = @new
END
Ce jette une erreur de syntaxe près de mon instruction fetch . Est-ce que quelqu'un peut m'aider avec ça? Merci!
LEAD et fonctions LAG aurait fait ce si simple:/ –
Ce ne sont pas disponibles dans SQL Server 2005 cependant, sont-ils? – user416516