我有一个表名MyDBTbl。
Name DisplayOrder
---------------------------
Home 1
Products 2
Contact true
Career false
我想插入一个新属性Qualification,默认值为True。当用户再次运行脚本时,它将检查属性的存在,如果不存在则插入它,如果存在则将其值切换为false,反之亦然。
答案 0 :(得分:0)
最初在数据库中创建表
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