Database 如何更改SQL Server Compact Edition表架构中的列顺序?
我正在使用Visual Studio 2008设计一个SQL Server Compact Edition数据库(*.sdf)。我不得不更改我的一个表的模式,添加一个新列 我想将新列从底部“移动”到字段列表中的不同位置。如何在Visual Studio designer中执行此操作Database 如何更改SQL Server Compact Edition表架构中的列顺序?,database,visual-studio-2008,sql-server-ce,Database,Visual Studio 2008,Sql Server Ce,我正在使用Visual Studio 2008设计一个SQL Server Compact Edition数据库(*.sdf)。我不得不更改我的一个表的模式,添加一个新列 我想将新列从底部“移动”到字段列表中的不同位置。如何在Visual Studio designer中执行此操作 编辑:我知道从纯技术的角度来看,列的顺序并不重要。我正在制作一个应用程序的原型,所以我必须更改模式几次。例如,如果我必须更改主键,那么将最重要的列放在末尾将是“丑陋的”。我认为,其他开发人员在查看代码时会感到困惑。这
编辑:我知道从纯技术的角度来看,列的顺序并不重要。我正在制作一个应用程序的原型,所以我必须更改模式几次。例如,如果我必须更改主键,那么将最重要的列放在末尾将是“丑陋的”。我认为,其他开发人员在查看代码时会感到困惑。这是一个美学问题。你不能只在设计师中移动它。您必须创建一个新列,删除旧列,生成脚本并编辑脚本,将其从旧表插入临时表,使旧列值(在选择中)进入新列。我同意Pax的观点。如果出于特定原因,需要在查询中按特定顺序返回字段,只需更改查询,将字段放在需要的位置即可 如果出于任何原因,您需要不惜一切代价移动该字段,您可以使用如下脚本执行此操作,这使得FIELD3成为名为TestTable的表中的第一列: 但是,我坚持认为,您的问题可能可以通过另一种方法解决,而不需要重组表格。遵循以下步骤:
谢谢你的回答。如何在VS中编写表格脚本?我没有找到那个选项。我使用的是SQLServerManagementStudio,所以它有点不同(我没有VS)。我显示了“Table Designer”工具栏,我点击了一个图标,它看起来像一个带软盘的滚动条,然后从出现的窗口复制/粘贴文本。请确保取消操作,以便更改不会运行。我必须是盲人。我找不到工具栏。你确定你使用的是SQL Server Compact数据库吗?我没有使用CTE,在检查过之后,你对Microsoft脚本解决方案不感兴趣,因为没有。人们说要用这个:谢谢你,KMike!我想我现在能做的最好的事情,就是放下那张桌子,从头开始重建它。这只是我的肛门保持力我不能看最后有一列最重要的表格……好吧,我希望我的建议能有所帮助。:)确保您复制了所有其他表项:索引、fk、检查约束等等……嗯,我正在寻找一种编写对象脚本的方法。对于SQL Server COMPACT数据库来说,这似乎不是一项简单的任务。。。
/* Original sample table with three fields */
CREATE TABLE [dbo].[TestTable](
[FIELD1] [nchar](10) NULL,
[FIELD2] [nchar](10) NULL,
[FIELD3] [nchar](10) NULL
) ON [PRIMARY]
/* The following script will make FIELD3 the first column */
CREATE TABLE dbo.Tmp_TestTable
(
FIELD3 nchar(10) NULL,
FIELD1 nchar(10) NULL,
FIELD2 nchar(10) NULL
) ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.TestTable)
EXEC('INSERT INTO dbo.Tmp_TestTable (FIELD3, FIELD1, FIELD2)
SELECT FIELD3, FIELD1, FIELD2 FROM dbo.TestTable WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.TestTable
GO
EXECUTE sp_rename N'dbo.Tmp_TestTable', N'TestTable', 'OBJECT'
GO