0

私のテーブルにはstudent_register、次のような4つの列があります。

1. srno 
2. firstname
3. lastname
4. middlename

middlenameSQL Server 2005クエリを使用して、テーブルの3番目の位置に列を永続的に配置する必要があります。

ありがとうございました。

4

2 に答える 2

3

テーブルを削除して再読み込みせずに、やりたいことを行う方法はありません。Management Studio がこれをどのように達成するかを確認するには (少なくとも 2012 年には、これは 2005 年にも当てはまると思います)、Management Studio のOptions> Designers> Table and Database Designer> Uncheckに移動しますPrevent saving changes that require table re-creation

それができたら、テーブル デザイナーに移動して列の順序を変更し、[保存] をクリックする代わりに [変更スクリプトの保存] をクリックして SQL を表示します。

SQL 2012 が生成するものは次のとおりです。

/* 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_Table_1
    (
    TEst1 nchar(10) NULL,
    Test3 nchar(10) NULL,
    Test2 nchar(10) NULL
    )  ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_Table_1 SET (LOCK_ESCALATION = TABLE)
GO
IF EXISTS(SELECT * FROM dbo.Table_1)
     EXEC('INSERT INTO dbo.Tmp_Table_1 (TEst1, Test3, Test2)
        SELECT TEst1, Test3, Test2 FROM dbo.Table_1 WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.Table_1
GO
EXECUTE sp_rename N'dbo.Tmp_Table_1', N'Table_1', 'OBJECT' 
GO
COMMIT
于 2013-03-22T04:53:39.607 に答える
1

これは 1 回限りのことなので、Visual Database Tools を使用するのが最も簡単な方法です。

方法: 列の順序を変更する (Visual Database Tools) SQL Server 2005

  • オブジェクト エクスプローラーで、並べ替える列を含むテーブルを右クリックし、[デザイン (SP1 以前で変更)] をクリックします。テーブル デザイナーでテーブルが開きます。
  • 並べ替える列名の左側にあるボックスを選択します。
  • 列をテーブル内の別の場所にドラッグします。

TSQL でそれを行うには、次のものが必要です。

  • 列の正しい順序で一時テーブルを作成します
  • 元のテーブルから一時テーブルにデータを挿入する
  • 元のテーブルをドロップ
  • 一時テーブルの名前を元の名前に変更
于 2013-03-22T04:52:14.273 に答える