Advertisement
anatak

SQL Server

Aug 2nd, 2019
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.70 KB | None | 0 0
  1. -- Generate VB or C# Properties
  2. IF OBJECT_ID('KV_GetTableInfo') IS NOT NULL
  3.   DROP PROC KV_GetTableInfo
  4. GO
  5.  
  6. CREATE PROC dbo.KV_GetTableInfo
  7.     @Database NVARCHAR(100),
  8.     @TableName NVARCHAR(100),
  9.     @Language NVARCHAR(20) = 'cs',
  10.     @OneStatement BIT = 0
  11. AS
  12. BEGIN
  13.     DECLARE @Statement NVARCHAR(MAX)
  14.     DECLARE @ParamDifinition NVARCHAR(MAX)
  15.     SET @ParamDifinition = N'@Table NVARCHAR(100)'
  16.    
  17.     IF @Language LIKE '%cs%'
  18.     BEGIN
  19.         SET @Statement = N'USE [' + @Database + '];'
  20.         SET @Statement = @Statement + N'SELECT COLUMN_NAME, DATA_TYPE, CASE WHEN DATA_TYPE LIKE ''%int%'' '
  21.         SET @Statement = @Statement + N'THEN ''public int '' + COLUMN_NAME + '' { get; set; }'' WHEN DATA_TYPE LIKE ''%char%'' '
  22.         SET @Statement = @Statement + N'THEN ''public string '' + COLUMN_NAME + '' { get; set; }'' WHEN DATA_TYPE LIKE ''%date%'' '
  23.         SET @Statement = @Statement + N'THEN ''public DateTime? '' + COLUMN_NAME + '' { get; set; }'' WHEN DATA_TYPE LIKE ''%image%'' '
  24.         SET @Statement = @Statement + N'THEN ''public byte[] '' + COLUMN_NAME + '' { get; set; }'' WHEN DATA_TYPE LIKE ''%bit%'' '
  25.         SET @Statement = @Statement + N'THEN ''public bool '' + COLUMN_NAME + '' { get; set; }'' WHEN (DATA_TYPE LIKE ''%real%'' OR DATA_TYPE LIKE ''%float%'') '
  26.         SET @Statement = @Statement + N'THEN ''public double '' + COLUMN_Name + '' { get; set; }'' '
  27.         SET @Statement = @Statement + N'END AS [CSharp_Statement] '
  28.         SET @Statement = @Statement + N'FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=@Table;'
  29.     END
  30.     ELSE IF @Language LIKE '%vb%'
  31.     BEGIN
  32.         SET @Statement = N'USE [' + @Database + '];'
  33.         SET @Statement = @Statement + N'SELECT COLUMN_NAME, DATA_TYPE, CASE WHEN DATA_TYPE LIKE ''%int%'' '
  34.         SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS Integer'' WHEN DATA_TYPE LIKE ''%char%'' '
  35.         SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS String'' WHEN DATA_TYPE LIKE ''%date%'' '
  36.         SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS DateTime?'' WHEN DATA_TYPE LIKE ''%image%'' '
  37.         SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS Byte()'' WHEN DATA_TYPE LIKE ''%bit%'' '
  38.         SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS Boolean'' WHEN (DATA_TYPE LIKE ''%real%'' OR DATA_TYPE LIKE ''%float%'') '
  39.         SET @Statement = @Statement + N'THEN ''Public Property '' + COLUMN_NAME + '' AS Decimal'' '
  40.         SET @Statement = @Statement + N'END AS [CSharp_Statement] '
  41.         SET @Statement = @Statement + N'FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=@Table;'
  42.     END
  43.     IF @OneStatement = 1
  44.         SELECT @Statement AS [Statement]
  45.     ELSE
  46.         EXECUTE sp_executesql @Statement, @ParamDifinition, @Table = @TableName
  47. END
  48. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement