嵌套IF语句SQL
我似乎无法获得嵌套if的正确格式。基本上我想做的就是跑步嵌套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
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, '}'