相关疑难解决方法(0)

如何在sql server 2005中使用sql查询更改表中的列顺序?

如何在SQL Server 2005中使用SQL查询更改表中的列顺序?

我想使用SQL查询重新排列表中的列顺序.

sql sql-server-2005

95
推荐指数
8
解决办法
23万
查看次数

SQL Server 2008 R2将列添加到特定位置

我正在使用SQL Server 2008 R2,我希望在表中的列顺序中将新列添加到特定位置,而不是在末尾.我希望避免重新创建表格.如何在不重新创建表的情况下执行此操作?

Table: Bob
==========
   Col1
   Col2
Run Code Online (Sandbox Code Playgroud)

添加新列.

Table: Bob
==========
   Col1
   NewCol
   Col2
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2008

13
推荐指数
2
解决办法
2万
查看次数

使用脚本在SQL Server中的其他列之间插入列

我试图用脚本改变SQL服务器中的表.在过去,我总是通过GUI完成这种事情,但现在我需要生成一个脚本来为客户完成.

我有一个SQL Server数据库表,如下所示:

MyTable
-------
ColA int NOT NULL
ColB int NOT NULL
ColC int NOT NULL
ColD VARCHAR(100)

主键在ColA,ColB和ColC中定义.

我希望SQL脚本像这样更改表:

MyTable
-------
ColA int NOT NULL
ColB int NOT NULL
ColX int NOT NULL  (new column, default 0 for existing data)
ColC int NOT NULL
ColD VARCHAR(100)

主键现在由ColA,ColB,ColX和ColC定义.

这很容易通过SQL Server GUI完成.但是当我从中生成一个脚本时,它似乎不必要地复杂.基本上,脚本使用新模式创建临时表,将旧表中的所有数据,索引和约束复制到临时表中,删除旧表,然后将新表重命名为旧表的名称.另外,它有这样的行:

ALTER TABLE dbo.Tmp_MyTable ADD CONSTRAINT
    MyTable21792984_ColC_DF DEFAULT ((0)) FOR ColC
Run Code Online (Sandbox Code Playgroud)

我担心这些随机数字(即21792984)在所有客户数据库实例上都不一样.它们看起来像SQL服务器在创建对每个实例唯一的数据库时生成的内容.

是否有更直接的方法通过SQL命令更改表?我在网上看过,但我发现的主要是基本的和/或通用的.

更新:根据我收到的答案,看起来困难在于将新列"置于"两列之间.我已经意识到列的顺序并不重要(如果我错了,请随意留下纠正我的答案).在我的例子中,如果我只是将列添加到表的末尾,则更改会更简单,代码中的任何内容都不依赖于特定的列顺序.

sql sql-server scripting

10
推荐指数
2
解决办法
5万
查看次数

SQL Server——有什么方法可以添加一列并使其成为表中的第一列吗?

我正在更改现有表以添加身份列。我能做到,没问题。

但我想确保将来查看它的人会看到它添加了标识列,所以我真的想将其设置为第 1 列。我知道这对系统的运行完全无关紧要;它仅供人类阅读。

有谁知道有什么方法可以做到这一点?我查看了 Alter Table 和 column_definition 的 TSQL 语法,但没有看到任何内容;但我希望有人知道一种方法来实现这一点。

FWIW,这是一项一次性操作(但在许多服务器上,因此需要自动化),所以我不担心任何“技巧”将来是否会消失——只要它现在有效。我们正在使用最新版本的 SQL Server Express。

感谢您的任何建议。

sql sql-server alter-table identity-column

5
推荐指数
1
解决办法
4万
查看次数

SQL Server 2005:如何在表的开头向表中添加列?

美好的一天,

当我们向表中添加一列时,它会被添加到表的末尾.但是,我真的需要在表的开头添加一列.原因是我们有脚本将数据从平面文件源导入到表中,并且我们将列开头的列更容易.

谢谢!

sql server 2005

sql sql-server

2
推荐指数
1
解决办法
1万
查看次数