MS SQL在一个表中查找多个列

马特·威廉姆森(Matt Williamson)

通常,我使用以下代码在表中查找列:

Use MyDatabase
Go
IF EXISTS(SELECT * FROM sys.columns 
    WHERE Name in ( N'String1') 
    AND Object_ID = Object_ID(N'dbo.Table1'))
BEGIN
    Print 'Column String1 exists in Table1'
END
ELSE
BEGIN
    Print 'Column String1 does not exist in Table1'
END;

我们正在更新表格并添加56个新列。如何在不重复执行56次代码的情况下解决该问题?导入新列后,这只是一个快速的错误检查。我想做的另一件事是仅在未找到该列的情况下才打印结果。

谢谢!

马特

代码不同

您可以声明一个包含所有要检查的56个列名的表,然后将其与管理视图保持联接:

DECLARE @cols TABLE
(
    column_name     varchar(500)
)

INSERT INTO @cols
    VALUES ('col1'),('col2'),('col3')

IF EXISTS (SELECT *
            FROM @cols c
            LEFT JOIN INFORMATION_SCHEMA.COLUMNS col ON col.COLUMN_NAME = c.column_name
                                                    AND col.TABLE_NAME = 'Table1'
            WHERE col.TABLE_NAME IS NULL)
BEGIN
    PRINT 'Some columns are missing'

    SELECT c.column_name
    FROM @cols c
    LEFT JOIN INFORMATION_SCHEMA.COLUMNS col ON col.COLUMN_NAME = c.column_name
                                            AND col.TABLE_NAME = 'Table1'
    WHERE col.TABLE_NAME IS NULL
END

INFORMATION_SCHEMA.COLUMNS在功能上与相同sys.columns我更喜欢它,因为它更清洁,并且比拥有更多信息sys.columns

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 MS SQL Server 中创建一个差异列

来自分类Dev

合并两个列的值,并插入到ms sql中的另一个表中

来自分类Dev

MS Access:在多个条件查找字段中仅查询一个条件

来自分类Dev

SQL联接和MS Access-如何将多个表组合为一个?

来自分类Dev

MS Access SQL:基于另一个表中的总和从一个表中返回数据

来自分类Dev

MS Access:将多个查询合并到一个表中

来自分类Dev

MS SQL在一个查询中从同一表中检索相关数据

来自分类Dev

MS SQL:插入另一个表中的值和常量数据中的值

来自分类Dev

MS SQL:插入另一个表中的值和常量数据中的值

来自分类Dev

SQL联接和MS Access-如何将多个表组合为一个表?

来自分类Dev

在MS SQL Server表中添加一列

来自分类Dev

SQL / MS Access:在SQL表中添加一个自动更新的字段,其中包含来自另一个表的值的总和

来自分类Dev

MS SQL-如何根据另一个表的ID从表中取出某些数据

来自分类Dev

如何在另一个表中更新Table1两列从MS SQL Server中选择查询

来自分类Dev

在MS SQL中查找列名

来自分类Dev

与ms sql中的表的连接列不同

来自分类Dev

MS SQL Server,基于另一个表创建和更新表

来自分类Dev

使用另一个表中的值更新ms-access表中的值

来自分类Dev

MS Access:更新表中的值以匹配另一个表的 ID 字段

来自分类Dev

MS Access VBA,尝试更新一个表并从另一个表中删除

来自分类Dev

MS SQL临时表

来自分类Dev

来自另一个表的MS SQL 2005更新记录

来自分类Dev

MS-Access - 使用加入另一个表的结果更新列

来自分类Dev

从ms Access数据宏中的另一个表中获取数据

来自分类Dev

在MS SQL Server中的多个表之间基于相同列共享复合外键

来自分类Dev

如何在存储过程中将两个MS SQL Server表合并为一个表

来自分类Dev

MS Access:将当前记录中的值插入另一个表

来自分类Dev

MS-Access 2016 - 根据另一个表中的记录更新记录

来自分类Dev

Ms sql - 逐行更新一个列表

Related 相关文章

  1. 1

    在 MS SQL Server 中创建一个差异列

  2. 2

    合并两个列的值,并插入到ms sql中的另一个表中

  3. 3

    MS Access:在多个条件查找字段中仅查询一个条件

  4. 4

    SQL联接和MS Access-如何将多个表组合为一个?

  5. 5

    MS Access SQL:基于另一个表中的总和从一个表中返回数据

  6. 6

    MS Access:将多个查询合并到一个表中

  7. 7

    MS SQL在一个查询中从同一表中检索相关数据

  8. 8

    MS SQL:插入另一个表中的值和常量数据中的值

  9. 9

    MS SQL:插入另一个表中的值和常量数据中的值

  10. 10

    SQL联接和MS Access-如何将多个表组合为一个表?

  11. 11

    在MS SQL Server表中添加一列

  12. 12

    SQL / MS Access:在SQL表中添加一个自动更新的字段,其中包含来自另一个表的值的总和

  13. 13

    MS SQL-如何根据另一个表的ID从表中取出某些数据

  14. 14

    如何在另一个表中更新Table1两列从MS SQL Server中选择查询

  15. 15

    在MS SQL中查找列名

  16. 16

    与ms sql中的表的连接列不同

  17. 17

    MS SQL Server,基于另一个表创建和更新表

  18. 18

    使用另一个表中的值更新ms-access表中的值

  19. 19

    MS Access:更新表中的值以匹配另一个表的 ID 字段

  20. 20

    MS Access VBA,尝试更新一个表并从另一个表中删除

  21. 21

    MS SQL临时表

  22. 22

    来自另一个表的MS SQL 2005更新记录

  23. 23

    MS-Access - 使用加入另一个表的结果更新列

  24. 24

    从ms Access数据宏中的另一个表中获取数据

  25. 25

    在MS SQL Server中的多个表之间基于相同列共享复合外键

  26. 26

    如何在存储过程中将两个MS SQL Server表合并为一个表

  27. 27

    MS Access:将当前记录中的值插入另一个表

  28. 28

    MS-Access 2016 - 根据另一个表中的记录更新记录

  29. 29

    Ms sql - 逐行更新一个列表

热门标签

归档