由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - SQL问题请教: add one more column
相关主题
SQL Server Trigger on System Base Table or Catalog ViewUrgent help needed, please
SQL find distinct values in large tableMemo Field一问
初级问题Table Merge (SQL Server)
SQL combine two columns from two different tables no shared (转载)Join optimization
How to handle inserting value to Identity column in sql server 2005How to replace 0 with empty?
求教一个复杂的query求助SQL高手,这个join怎么做比较好
我的DBA在生成ORACLE table的时候需要一个一个column看sql server 行转列的问题
有包子!sql procedure 来rank不同table里面的数据一个关于T-SQL的问题
相关话题的讨论汇总
话题: table话题: sql话题: add话题: column话题: int
进入Database版参与讨论
1 (共1页)
z*y
发帖数: 1311
1
One table already has records in it.
I want to add one more column as below:
"id INT NOT NULL AUTO_INCREMENT"
and also set "id" as PRIMARY KEY.
If I do this using ALTER TABLE, what will happen?
Will the DBMS automatically fill the "id" of existing records?
If not, what to do to achieve that?
Thank you so much!
g***l
发帖数: 18555
2
alter table orders
add id_order int not null Identity(1,1)
c*****d
发帖数: 6045
3
这是一个挺有意思的问题
how does sql server assign auto-generated identity to existing records
我手边没有sql server,谁能试一下?
比如原表(name char(10))
添加一个字段成为(id int identity(1,1), name char(10))
如果记录物理顺序是{a, b, c, d},会变成{(1,a), (2,b), (3,c), (4,d)}吗?
如果记录物理顺序是{d, c, b, a},会变成{(1,d), (2,c), (3,b), (4,a)}吗?
字段id和原来表中的物理排列顺序是否相关?
y****w
发帖数: 3747
4
需要offline table么?

【在 g***l 的大作中提到】
: alter table orders
: add id_order int not null Identity(1,1)

c*****d
发帖数: 6045
5
I think sql server will make the table offline

【在 y****w 的大作中提到】
: 需要offline table么?
y****w
发帖数: 3747
6
自动还是手动? 我现在也没环境试验了. 猜测应该是有手动开关的.

【在 c*****d 的大作中提到】
: I think sql server will make the table offline
y****w
发帖数: 3747
gy
发帖数: 620
8
I did a test on this, and the conclusion is "字段id和原来表中的物理排列顺序
相关"
Here is the test code:
-- 1. First create a table with only one column
CREATE TABLE dbo.test(col varchar(5));
-- 2. Insert some test data
DECLARE @id int
SET @id = 1
WHILE(@id <= 5000)
BEGIN
INSERT INTO dbo.test(col)
VALUES(LEFT(CAST(NEWID() AS VARCHAR(50)), 5));
SET @id = @id + 1;
END
SELECT * FROM dbo.test
-- 3. Now, add the identity column:
ALTER TABLE dbo.test
ADD TID INT IDENTITY;
-- 4. Check the result compared with the result from step 2.
SELECT * FROM dbo.test
-- Clean up.
DROP TABLE dbo.test
GO
--------------------
NOTE: The test was performed on SQL SERVER 2008. I don't have ORACLE here.

【在 c*****d 的大作中提到】
: 这是一个挺有意思的问题
: how does sql server assign auto-generated identity to existing records
: 我手边没有sql server,谁能试一下?
: 比如原表(name char(10))
: 添加一个字段成为(id int identity(1,1), name char(10))
: 如果记录物理顺序是{a, b, c, d},会变成{(1,a), (2,b), (3,c), (4,d)}吗?
: 如果记录物理顺序是{d, c, b, a},会变成{(1,d), (2,c), (3,b), (4,a)}吗?
: 字段id和原来表中的物理排列顺序是否相关?

1 (共1页)
进入Database版参与讨论
相关主题
一个关于T-SQL的问题How to handle inserting value to Identity column in sql server 2005
新手求教,plsql collection 参数传入问题,非常感谢。求教一个复杂的query
SQL help.我的DBA在生成ORACLE table的时候需要一个一个column看
Basic oracle questions.有包子!sql procedure 来rank不同table里面的数据
SQL Server Trigger on System Base Table or Catalog ViewUrgent help needed, please
SQL find distinct values in large tableMemo Field一问
初级问题Table Merge (SQL Server)
SQL combine two columns from two different tables no shared (转载)Join optimization
相关话题的讨论汇总
话题: table话题: sql话题: add话题: column话题: int