【问题标题】:How to add one column into existing SQL Table如何将一列添加到现有 SQL 表中
【发布时间】:2016-01-06 17:27:52
【问题描述】:

我有一个 SQL Server 表,它位于远程服务器上。我可以使用 SQL Server Management Studio 连接到它,但打开它需要时间,我正在使用 SQL Query 窗口完成我的工作而没有到达它。

最近我对该表的本地副本进行了更改,并且还想更新远程副本。我所做的只是再添加一列Nullable,我想了解如何在不破坏远程数据的情况下使用T-SQL 将这一列添加到远程SQL Server。

以下是附加信息:

Table Name: Products

Columns to be added: LastUpdate, Nullable and varchar(200)

谢谢。

【问题讨论】:

  • 为什么LastUpdatevarchar(200)?听起来像一个日期列。
  • 听起来应该不止一列 - 通常好的做法是每条数据一列。
  • 我不需要考虑更好的做法。这只是一个临时项目,只需要处理当前任务。
  • 如果你经常做糟糕的设计,当它无关紧要时,你最终会在重要的时候做糟糕的设计。 永远不要将多条数据放在一个列中你将永远解析出你的值,只需创建多个列,以正确的方式做到这一点真的很容易,为什么不呢?
  • 有时将多条数据放在一个列中可以显着加快和简化您的架构。例如,假设您要存储最后 5 个选定的号码。您可以创建一个表、一个关系并在数据库中存储 5 条记录。或者,您可以存储一个字符串列表 1,2,3,4,5。如果您没有理由对 1,2,3,4,5 进行任何特殊处理,则将其存储为列表。说永远不要将多条数据放在一个列中,但情况并非总是如此。如果需要,您可以随时添加关系表。

标签: sql-server tsql sql-server-2008


【解决方案1】:

你需要的语法是

ALTER TABLE Products ADD LastUpdate  varchar(200) NULL

This is a metadata only operation

【讨论】:

  • @manosivam - 我拒绝了your edit。新列的默认可空性取决于session and database options,不应假定。
  • 您给出的链接指向一个网页,该网页加载了大量的广告和右侧边栏的外部链接,而主页文本完全为空。所以我假设,我们可以称该链接为“死”或至少不可用。
  • @trejder - 感谢您的提醒。好像移到sqlmag.com/blog/…
【解决方案2】:

类似的东西呢:

Alter Table Products
Add LastUpdate varchar(200) null

您需要比这更复杂的东西吗?

【讨论】:

    【解决方案3】:

    完美运行

    ALTER TABLE `products` ADD `LastUpdate` varchar(200) NULL;
    

    但是如果你想要更精确的表格,那么你可以试试AFTER

    ALTER TABLE `products` ADD `LastUpdate` varchar(200) NULL AFTER `column_name`;
    

    它将在指定的列名(column_name)之后添加LastUpdate列。

    【讨论】:

      【解决方案4】:
      alter table table_name add field_name (size);
      
      alter table arnicsc add place number(10);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-25
        • 2015-03-19
        • 1970-01-01
        • 2019-08-11
        • 2020-02-21
        • 2016-11-13
        相关资源
        最近更新 更多