Форум программистов, компьютерный форум, киберфорум
Наши страницы
kenny69
Войти
Регистрация
Восстановить пароль
Рейтинг: 3.00. Голосов: 1.

Саздание C# класса из таблицы с помощью sql скрипта

Запись от kenny69 размещена 05.11.2017 в 05:36

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
DECLARE @TableName sysname = 'TableName'
 
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
Размещено в Без категории
Просмотров 274 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru