有没有办法迭代SQL Server中的表中的每一列

时间:2018-03-13 06:28:31

标签: sql sql-server

我有一个包含10列的表。我需要的是通过while循环选择每个列(选择每个列名而不是每个列值)并查找其名称是否以' box'如果是,则将该列值添加到变量中。

例如:

    $ldate="";

    if(empty(strtotime($row['loan_date1']))){
    $ldate=$row['Loan_Date']; }


    if(strtotime($row['loan_date1'])>0 and 
    empty(strtotime($row['loan_date2']))){
        $ldate=$row['loan_date1'];  }

1 个答案:

答案 0 :(得分:1)

没有使用while循环,而是一种快速简便的方法来查找名称之类的任何列。

SELECT   
        c.name  AS 'ColumnName'
        ,t.name AS 'TableName'
FROM        
        sys.columns c
JOIN        
        sys.tables  t   ON c.object_id = t.object_id
WHERE      
        t.name = 'TableName'
        AND c.name LIKE 'box%'
ORDER BY    
         TableName
        ,ColumnName;

答案已更新,现在在where子句中包含表名。