ALTER TABLE Log ADD log_id bigint IDENTITY BEFORE cust_id_fk
上面的代码为最后一个位置添加了一个新列。我希望它被添加到第一个位置。我也希望将其作为主键。
答案 0 :(得分:9)
您需要删除表并使用正确顺序的列重新创建它。如果您在SSMS中更改表,那么它可以为您生成更改脚本,然后您可以使用该脚本将更改部署到生产服务器。
答案 1 :(得分:3)
即使问题陈旧,也需要更准确地了解Management Studio。
您可以手动或使用Management Studio创建列。但是Management Studio将需要重新创建表格,并且如果您已经有太多数据,将导致超时,除非表格很轻,否则请避免。
要更改列的顺序,您只需在Management Studio中移动它们即可。这不应要求(很可能存在异常)Management Studio重新创建表,因为它很可能会更改表定义中列的排序。
我已经在很多场合以这种方式完成了这些表格,由于其中的数据,我无法使用GUI添加列。然后使用Management Studio的GUI移动列并简单地保存它们。
你会从有保证的时间到等待几秒钟。
答案 2 :(得分:0)
在MSSMS中,选择对象资源管理器中的表。右键单击并选择修改。 这将带来一个新选项卡,您可以在其中将列拖动到新的默认顺序。 保存并预先!完成。
答案 3 :(得分:0)
步骤:
答案 4 :(得分:0)
简短的回答:这是不可能的。
但您可以尝试以下步骤:
如果您有数据。复制数据并将其粘贴到Excel电子表格中,编辑电子表格以包含新列,编辑前100行并将数据粘贴回表格。
古德勒克
答案 5 :(得分:0)
使用Transact-SQL语句不支持此操作。
答案 6 :(得分:-2)
您必须创建另一个表并复制数据。但是看看“序数位置”并尝试更新它?
SELECT
ORDINAL_POSITION
,COLUMN_NAME
,DATA_TYPE
,CHARACTER_MAXIMUM_LENGTH
,IS_NULLABLE
,COLUMN_DEFAULT
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Product'
ORDER BY
ORDINAL_POSITION ASC;
主键是另一个问题,您可以找到很多答案。