T-SQL更新1到1000列

时间:2010-11-09 15:15:32

标签: sql sql-server tsql

我想将表1中的列更新为10000

这是执行此操作的最佳方法。

环境: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,Level 15,State 1,Line 2 关键字“INTO”附近的语法不正确。

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

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

我哪里出错了

2 个答案:

答案 0 :(得分:2)

语法是

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

UPDATE语句看起来也不正确。但我不知道你想要达到的目的。

答案 1 :(得分:0)

不清楚需要什么。但这会给你一个临时表,增加的用户ID:

SELECT * INTO #tmp_data  FROM mytable 

UPDATE #tmp_data 
SET userid = userid + 1