в SQL Server 2005 вы можете сохранить сценарий изменения таблиц изменений, поэтому, например, я создал тестовую таблицу с col1, col2 и col3. Затем добавили col4 между col1 и col2. Я сохранил сценарии изменений, и это было сгенерировано.
Посмотрите
/* To prevent any potential data loss issues, you should review this script in detail before running it outside the context of the database designer.*/
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_zzzzzzzz
(
col1 nchar(10) NULL,
col4 nchar(10) NULL,
col2 nchar(10) NULL,
col3 nchar(10) NULL
) ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.zzzzzzzz)
EXEC('INSERT INTO dbo.Tmp_zzzzzzzz (col1, col2, col3)
SELECT col1, col2, col3 FROM dbo.zzzzzzzz WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.zzzzzzzz
GO
EXECUTE sp_rename N'dbo.Tmp_zzzzzzzz', N'zzzzzzzz', 'OBJECT'
GO
COMMIT
похоже, что нет способа просто добавить столбец. Кроме того, помните о транзакции, это приведет к удалению исходной таблицы, поэтому хорошо использовать транзакцию