【问题标题】:How to insert a new field and Toggle its value如何插入新字段并切换其值
【发布时间】:2018-11-27 04:45:02
【问题描述】:

我有一个表名 MyDBTbl。

   Name   DisplayOrder
---------------------------
   Home        1
   Products    2
   Contact     true
   Career      false

我想插入一个默认值为 True 的新属性 Qualification。当用户再次运行脚本时,它会检查属性是否存在,如果不存在则插入它,如果存在则将其值切换为 false,反之亦然。


【问题讨论】:

  • SQL Server 有列,而不是字段。您的帖子也暗示您的表格只有 2 列,代表多个不同的属性;这几乎也是一个坏主意。最后,你的问题是什么?你忘了问一个;你刚刚陈述了你想做什么。您需要什么帮助?
  • 哦..我的错误,我是 SQL 新手,不知道,所以我想为客户提供一个查询,运行查询后,新属性将插入现有表中,如果他执行再次,它将其值更改为false。希望现在清楚。

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


【解决方案1】:

首先在您的数据库中创建表

CREATE TABLE Tempdata(Name VARCHAR(20), DisplayOrder VARCHAR(20))
INSERT INTO Tempdata
SELECT'Home'     ,'1'       UNION ALL
SELECT'Products' ,'2'       UNION ALL
SELECT'Contact'  ,'true'    UNION ALL
SELECT'Career'   ,'false'

根据您的要求运行下面的sql脚本并根据要求编写代码,我认为这会对您有所帮助

 IF NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLES 
                WHERE TABLE_NAME='Tempdata')
BEGIN
CREATE TABLE Tempdata(Name VARCHAR(20), DisplayOrder VARCHAR(20))
INSERT INTO Tempdata
SELECT'Home'     ,'1'       UNION ALL
SELECT'Products' ,'2'       UNION ALL
SELECT'Contact'  ,'true'    UNION ALL
SELECT'Career'   ,'false'
END
--DROP TABLE Tempdata
IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLES 
                WHERE TABLE_NAME='Tempdata')
BEGIN

        IF NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS 
                        WHERE TABLE_NAME='Tempdata' AND COLUMN_NAME='Qualification')
        BEGIN
        ALTER TABLE Tempdata ADD Qualification VARCHAR(10)  NULL
        ALTER TABLE Tempdata ADD CONSTRAINT Df_Qualification DEFAULT('True') FOR Qualification
        UPDATE Tempdata SET Qualification='True'

        END

ELSE 
    IF  EXISTS(SELECT 1 FROM Tempdata
                      WHERE   Qualification='True'
                        )
    BEGIN
    UPDATE Tempdata SET Qualification='False'

    END
    ELSE UPDATE Tempdata SET Qualification='True'

END

SELECT * FROM Tempdata

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    相关资源
    最近更新 更多