TO wwq_jeff(飞雪):
问题是我的表的字段是是动态增加的,而且增加的字段的字段名事先无法知道(由另一个表间接完成字段的添加。。。也就是说对该表的查询和字段插入在两个不同的模块中完成)。所以只能用select * form tablename 类的语句查询,用你所说的方法好象行不通。。。难道我还要来两次查询,第一次获得所有的字段名,第二次再对字段排序吗。。???
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
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
CREATE TABLE dbo.Tmp_test
(
id int NOT NULL,
dd char(10) NULL,
epl text NOT NULL
) ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.test)
EXEC('INSERT INTO dbo.Tmp_test (id, epl)
SELECT id, epl FROM dbo.test TABLOCKX')
GO
DROP TABLE dbo.test
GO
EXECUTE sp_rename N'dbo.Tmp_test', N'test', 'OBJECT'
GO
COMMIT