我正在更改现有表以添加标识列。我可以做到的,没问题。
但是我想确保以后看到它的人会看到它添加了identity列,所以我真的想使其成为列1。我知道这与系统的操作完全无关紧要;严格供人类阅读。
有人知道这样做的方法吗?我看过Alter Table和column_definition的TSQL语法,什么也没看到。但我希望有人知道实现这一目标的方法。
FWIW,这是一次性操作(但是在许多服务器上,因此它需要自动化),因此,我不担心将来是否会消失任何“技巧”-只要现在就可以使用。我们正在使用SQL Server Express的最新版本。
谢谢您的建议。
根据Microsoft,您只能使用SQL Server Management Studio来执行此操作。检查this
请按照以下步骤解决:
-- First, add identity column
alter table
mytable
add
id int identity(1, 1) not null
-- Second, create new table from existing one with correct column order
select
id,
col1,
col2
into
newtable
from
mytable
现在您已经newtable
的列进行了重新排序。如果需要,可以删除mytable
并将newtable
重命名为mytable
:
drop table
mytable
exec sp_rename
'newtable', 'mytable'
ALTER
语句不可能。如果希望按特定顺序排列列,则必须创建一个新表,使用INSERT INTO newtable (col-x,col-a,col-b)SELECT col-x,col-a,col-b
FROM oldtable将数据从旧表传输到新表,删除旧表并将新表重命名为旧表名称。] >
不一定建议这样做,因为列在数据库表中的顺序无关紧要。当使用SELECT
语句时,可以命名列并按所需顺序将其返回给您。
使用对象浏览器
避免此步骤..因为ssms工具使您可以轻松进行数据管理,而在使用多列记录进行更改时,您可能最终会丢失一些数据。等。不断变化的架构..
一旦数据丢失..您将无处取回它们...发生在我身上oncw ..