2010-11-09 7 views
-2

Je veux mettre à jour une colonne dans une table 1-10000mise à jour T-SQL 1 à 1000 colonne

qui est la meilleure méthode pour le faire.

Environnement: Sql Server 2008.

je pensais a peut être

USE [] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
CREATE TABLE [dbo].[mytable](
    [userid] [int] NULL, 
    [name] [nchar](10) NULL 
) ON [PRIMARY] 
GO 
insert into mytable(userid,name)Values (1,'a') 
insert into mytable(userid,name)Values (6,'b') 
insert into mytable(userid,name)Values (7,'c') 
insert into mytable(userid,name)Values (8,'d') 
insert into mytable(userid,name)Values (9,'e') 
GO 

alors un msg56 d'erreur, niveau 15, état 1, ligne 2 syntaxe incorrecte près du mot-clé 'en'.

USE MD 
SELECT userid = 0, * FROM mytable INTO #tmp_data 

DECLARE @userid int 
SET @userid = 0 
UPDATE #tmp_data 
SET @userid= userid = @userid + 1 

où ai-je mal tourné

+0

Veuillez poster ce à quoi vous voulez que votre table ressemble après toutes ces opérations. – Quassnoi

+2

??? Qu'essayez-vous de faire??? Et où exactement quelque chose ne va pas? Les instructions CREATE TABLE et INSERT INTO fonctionnent très bien - alors quel est le problème, vraiment? Vous n'êtes pas très clair .... –

+2

-1: Très difficile de déterminer ce qui est demandé ici. –

Répondre

2

La syntaxe est

SELECT ... INTO ... FROM ... 

L'instruction UPDATE ne semble pas correct, que ce soit. Mais je n'ai aucune idée de ce que vous essayez d'accomplir.

+0

Merci juste script aveugle – icecurtain

0

ne sait pas ce qui est nécessaire. Mais cela vous donnera une table temporaire avec userid incrémentée:

SELECT * INTO #tmp_data FROM mytable 

UPDATE #tmp_data 
SET userid = userid + 1 
+0

ce travail merci SELECT userid = 0, * INTO #tmp_data FROM mytable aller DECLARE @userid int SET @userid = 0 MISE À JOUR mytable SET @ utilisateurid = userid = @userid + 1 USE MD sélectionner * from mytable. – icecurtain

+0

Je voulais mettre à jour une colonne avec de nouveaux numéros séquentiels – icecurtain

Questions connexes