Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Generate VB or C# Properties
- IF OBJECT_ID('KV_GetTableInfo') IS NOT NULL
- DROP PROC KV_GetTableInfo
- GO
- CREATE PROC dbo.KV_GetTableInfo
- @Database NVARCHAR(100),
- @TableName NVARCHAR(100),
- @Language NVARCHAR(20) = 'cs',
- @OneStatement BIT = 0
- AS
- BEGIN
- DECLARE @Statement NVARCHAR(MAX)
- DECLARE @ParamDifinition NVARCHAR(MAX)
- SET @ParamDifinition = N'@Table NVARCHAR(100)'
- IF @Language LIKE '%cs%'
- BEGIN
- SET @Statement = N'USE [' + @Database + '];'
- SET @Statement = @Statement + N'SELECT COLUMN_NAME, DATA_TYPE, CASE WHEN DATA_TYPE LIKE ''%int%'' '
- SET @Statement = @Statement + N'THEN ''public int '' + COLUMN_NAME + '' { get; set; }'' WHEN DATA_TYPE LIKE ''%char%'' '
- SET @Statement = @Statement + N'THEN ''public string '' + COLUMN_NAME + '' { get; set; }'' WHEN DATA_TYPE LIKE ''%date%'' '
- SET @Statement = @Statement + N'THEN ''public DateTime? '' + COLUMN_NAME + '' { get; set; }'' WHEN DATA_TYPE LIKE ''%image%'' '
- SET @Statement = @Statement + N'THEN ''public byte[] '' + COLUMN_NAME + '' { get; set; }'' WHEN DATA_TYPE LIKE ''%bit%'' '
- SET @Statement = @Statement + N'THEN ''public bool '' + COLUMN_NAME + '' { get; set; }'' WHEN (DATA_TYPE LIKE ''%real%'' OR DATA_TYPE LIKE ''%float%'') '
- SET @Statement = @Statement + N'THEN ''public double '' + COLUMN_Name + '' { get; set; }'' '
- SET @Statement = @Statement + N'END AS [CSharp_Statement] '
- SET @Statement = @Statement + N'FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=@Table;'
- END
- ELSE IF @Language LIKE '%vb%'
- BEGIN
- SET @Statement = N'USE [' + @Database + '];'
- SET @Statement = @Statement + N'SELECT COLUMN_NAME, DATA_TYPE, CASE WHEN DATA_TYPE LIKE ''%int%'' '
- SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS Integer'' WHEN DATA_TYPE LIKE ''%char%'' '
- SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS String'' WHEN DATA_TYPE LIKE ''%date%'' '
- SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS DateTime?'' WHEN DATA_TYPE LIKE ''%image%'' '
- SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS Byte()'' WHEN DATA_TYPE LIKE ''%bit%'' '
- SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS Boolean'' WHEN (DATA_TYPE LIKE ''%real%'' OR DATA_TYPE LIKE ''%float%'') '
- SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS Decimal'' '
- SET @Statement = @Statement + N'END AS [CSharp_Statement] '
- SET @Statement = @Statement + N'FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=@Table;'
- END
- IF @OneStatement = 1
- SELECT @Statement AS [Statement]
- ELSE
- EXECUTE sp_executesql @Statement, @ParamDifinition, @Table = @TableName
- END
- GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement