嵌套IF语句SQL

嵌套IF语句SQL,sql,sql-server,Sql,Sql Server,我似乎无法获得嵌套if的正确格式。基本上我想做的就是跑步 select columnproperty(object_id(@TableName),t.name,'IsIdentity') = 0 针对下面创建的循环。如果它是一个理想的柱,我不想它 DECLARE @TableName VARCHAR(50) SELECT @TableName ='Users' select -1 as colid, 'public class obj_' + @TableName + '{' union

我似乎无法获得嵌套if的正确格式。基本上我想做的就是跑步

 select columnproperty(object_id(@TableName),t.name,'IsIdentity') = 0 
针对下面创建的循环。如果它是一个理想的柱,我不想它

DECLARE @TableName VARCHAR(50)
SELECT @TableName ='Users'
select -1 as colid, 'public class obj_' + @TableName + '{'
union

SELECT c.colid,
             'public '+
              (CASE WHEN t.name IN ('int', 'bigint') THEN 'Int32?' 
                   WHEN t.name IN ('nvarchar','varchar','text','ntext') THEN 'String'
                   WHEN t.name IN ('datetime','smalldatetime') THEN 'DateTime?'
                   WHEN t.name IN ('decimal') THEN 'Decimal?'
                   WHEN t.name IN ('bit') THEN 'Boolean?'
                   ELSE 'Unknown'
               END) + ' ' + c.name + '{ get; set; }'
       FROM syscolumns c JOIN
            systypes t
            ON t.xusertype=c.xusertype
       WHERE id IN (SELECT id FROM sysobjects WHERE name = @TableName) 
          union 
          select 1000 as colid, '}'

使用
sys
视图,使用
sys.columns.is\u identity

SELECT c.column_id,
         'public '+
          (CASE WHEN t.name IN ('int', 'bigint') THEN 'Int32?' 
               WHEN t.name IN ('nvarchar','varchar','text','ntext') THEN 'String'
               WHEN t.name IN ('datetime','smalldatetime') THEN 'DateTime?'
               WHEN t.name IN ('decimal') THEN 'Decimal?'
               WHEN t.name IN ('bit') THEN 'Boolean?'
               ELSE 'Unknown'
           END) + ' ' + c.name + '{ get; set; }'
    FROM    
        sys.columns c
    INNER JOIN 
        sys.types t ON c.user_type_id = t.user_type_id
    WHERE 
       c.object_id = OBJECT_ID(@TableName)
    AND
        c.is_identity = 0
    UNION 
        select 1000 as colid, '}'