Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- declare @TableName sysname = 'Usuario'
- declare @Result varchar(max) = 'public class ' + @TableName + '
- {'
- select @Result = @Result + '
- public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }
- '
- from
- (
- select
- replace(col.name, ' ', '_') ColumnName,
- column_id ColumnId,
- case typ.name
- when 'bigint' then 'long'
- when 'binary' then 'byte[]'
- when 'bit' then 'bool'
- when 'char' then 'string'
- when 'date' then 'DateTime'
- when 'datetime' then 'DateTime'
- when 'datetime2' then 'DateTime'
- when 'datetimeoffset' then 'DateTimeOffset'
- when 'decimal' then 'decimal'
- when 'float' then 'float'
- when 'image' then 'byte[]'
- when 'int' then 'int'
- when 'money' then 'decimal'
- when 'nchar' then 'char'
- when 'ntext' then 'string'
- when 'numeric' then 'decimal'
- when 'nvarchar' then 'string'
- when 'real' then 'double'
- when 'smalldatetime' then 'DateTime'
- when 'smallint' then 'short'
- when 'smallmoney' then 'decimal'
- when 'text' then 'string'
- when 'time' then 'TimeSpan'
- when 'timestamp' then 'DateTime'
- when 'tinyint' then 'byte'
- when 'uniqueidentifier' then 'Guid'
- when 'varbinary' then 'byte[]'
- when 'varchar' then 'string'
- else 'UNKNOWN_' + typ.name
- end ColumnType,
- case
- when col.is_nullable = 1 and typ.name in ('bigint', 'bit', 'date', 'datetime', 'datetime2', 'datetimeoffset', 'decimal', 'float', 'int', 'money', 'numeric', 'real', 'smalldatetime', 'smallint', 'smallmoney', 'time', 'tinyint', 'uniqueidentifier')
- then '?'
- else ''
- end NullableSign
- from sys.columns col
- join sys.types typ on
- col.system_type_id = typ.system_type_id AND col.user_type_id = typ.user_type_id
- where object_id = object_id(@TableName)
- ) t
- order by ColumnId
- set @Result = @Result + '
- }'
- print @Result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement