如何检查列(我确定不存在)是否存在?并添加该列 [英] How to check if column(that I'm sure that doesn't exist) exist? and add that column

查看:70
本文介绍了如何检查列(我确定不存在)是否存在?并添加该列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

例如,我将检查我是否有
表格:周
列:星期一,星期二,星期三,星期四

但我想检查星期五是否存在

for example i will check if i have a
Table: Week
Columns: Monday, Tuesday, Wednesday ,Thursday

but i want to check if friday exist

IF NOT EXISTS(SELECT Friday FROM INFORMATION_SCHEMA.COLUMNS)
 ALTER TABLE TimeTB ADD Friday nvarchar(50) DEFAULT 'Free' NOT NULL




错误:列名星期五"无效.




Error: Invalid column name ''Friday''.

推荐答案

ADD列,然后是列名:)

ADD Column then column name :)

ALTER TABLE Table_Name ADD COLUMN Col_Name nvarchar(50)


好的,奇怪的要求.但是,您可以在SQL中使用 TRY-CATCH .

试试类似的东西:
Ok, strange requirement. Yet, you can use TRY-CATCH in SQL for it.

Try something like:
BEGIN TRY
  SELECT
     MyNewColumnNameToAddIfNotExists
  FROM
     MyExistingTable
END TRY
BEGIN CATCH
  ALTER TABLE MyExistingTable ADD MyNewColumnNameToAddIfNotExists nvarchar(50) DEFAULT 'Free' NOT NULL      
END CATCH


附注:您可能需要确保该错误仅是由于缺少列造成的!

此外,如果需要,您可以尝试使用Try-Catch进行事务处理.在此处查找详细信息 [


P.S.: You might need to make sure that the error is because of missing column only!

Further, if needed you can try Transactions along with Try-Catch. Look for details here[^].


您的SELECT语句不正确.试试这个:
Your SELECT statement is incorrect. Try this:
IF NOT EXISTS
    (
        SELECT 0 FROM INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_NAME = 'TimeTB' AND COLUMN_NAME = 'Friday'
    )
BEGIN
    ALTER TABLE TimeTB ADD COLUMN [Friday] nvarchar(50) DEFAULT 'Free' NOT NULL
END


另外,我在星期五"两边加了方括号,以防万一这是保留字.似乎有人已经添加了类似的答案,但已将其删除.不知道为什么会这样.


Also, I put square brackets around "Friday" just in case it''s a reserved word. Looks like somebody already added a similar answer, but it was deleted. Not sure why that is.


这篇关于如何检查列(我确定不存在)是否存在?并添加该列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆