2010-11-09 81 views
-2

我想在表1中更新到10000T-SQL更新1列1000

一列是達到這一目標的最佳方法。

環境:SQL Server 2008的

我以爲可能是

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 

然後錯誤msg56,級別15,狀態1,行 '變成' 關鍵字近2 語法不正確。

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

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

我在哪裏出了錯

+0

請發佈您希望您的桌子在所有這些操作之後的樣子。 – Quassnoi 2010-11-09 15:17:48

+2

???你想做什麼???什麼地方正在失敗? CREATE TABLE和INSERT INTO語句工作得很好 - 那麼問題是什麼,真的?你不是很清楚.... – 2010-11-09 15:18:14

+2

-1:很難確定這裏要問什麼。 – 2010-11-09 15:20:08

回答

2

語法

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

UPDATE語句看起來不正確的,無論是。但我不知道你在努力達到什麼目的。

+0

感謝腳本失明 – icecurtain 2010-11-09 15:30:47

0

並不清楚需要什麼。但是,這會給你一個臨時表與增量用戶名:

SELECT * INTO #tmp_data FROM mytable 

UPDATE #tmp_data 
SET userid = userid + 1 
+0

本文感謝SELECT userid = 0,* INTO #tmp_data FROM mytable go DECLARE @userid int SET @userid = 0 UPDATE mytable SET @ userid = userid = @userid + 1 USET MD select * from mytable。 – icecurtain 2010-11-09 15:28:25

+0

我想用新的序列號更新一列 – icecurtain 2010-11-09 15:30:13