none
请问计算列怎么用语句删除,我用ALTER TABLE tb DROP COLUMN Colcom提示Colcom列不存在。 RRS feed

答案

  • ALTER TABLE tb DROP COLUMN  [HTTP成功率(%)]

    如果说列不存在,那么你查下表结构

    exec sp_columns tb

    • 已标记为答案 Tim-2009 2017年11月7日 6:43
    2017年11月7日 2:35

全部回复

  • 请问你的计算列创建语句是怎样的

    Love SQL

    2017年11月6日 10:01
  • 请问你的计算列创建语句是怎样的

    Love SQL

    ALTER TABLE tb ADD Colcom AS number*price类似这样创建的
    2017年11月6日 14:13
  • 你这个计算列没有加PERSISTED关键字,也就是实际上你这个计算列的数据根本没有存储,加上PERSISTED关键字那么drop掉计算列就不会报错了

    bb AS SUM(id) PERSISTED)


    Love SQL

    2017年11月6日 14:38
  • 你这个计算列没有加PERSISTED关键字,也就是实际上你这个计算列的数据根本没有存储,加上PERSISTED关键字那么drop掉计算列就不会报错了

    bb AS SUM(id) PERSISTED)


    Love SQL


    我这个计算列用了自定义函数,不能加 PERSISTED,不加这个就不能删除了?
    2017年11月7日 0:46
  • 不知道你是怎么写的,不应该有问题,参考正的示例,两个删除都是没有问题的

    create table t(id int, a as id, b as id persisted);
    exec sp_help t;
    alter table t drop column a;
    alter table t drop column b;
    exec sp_help t;
    drop table t;

    2017年11月7日 1:22
  • 不知道你是怎么写的,不应该有问题,参考正的示例,两个删除都是没有问题的

    create table t(id int, a as id, b as id persisted);
    exec sp_help t;
    alter table t drop column a;
    alter table t drop column b;
    exec sp_help t;
    drop table t;

    我是这么写的:

    ALTER TABLE tb ADD  [HTTP成功率(%)] AS [dbo].[func_计算](HTTP_Accept,HTTP_Attempt), [HTTP时延(ms)] AS [dbo].[func_计算](HTTP_Latency,HTTP_Accept)

    2017年11月7日 2:07
  • ALTER TABLE tb DROP COLUMN  [HTTP成功率(%)]

    如果说列不存在,那么你查下表结构

    exec sp_columns tb

    • 已标记为答案 Tim-2009 2017年11月7日 6:43
    2017年11月7日 2:35
  • ALTER TABLE tb DROP COLUMN  [HTTP成功率(%)]

    如果说列不存在,那么你查下表结构

    exec sp_columns tb

    可以了,谢谢!
    2017年11月7日 6:43