sql 生成(c#model类)代码的存储过程

GO
/****** 对象:  StoredProcedure [dbo].[pro_GenerateModel]    脚本日期: 08/04/2012 11:26:43 ******/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pro_GenerateModel]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[pro_GenerateModel]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************
** DECRIPTION: 生成(c#model类)代码的存储过程
** VERSION      AUTH          DATE          Defect No			DESC
** --------  ------------  ------------  -----------------   ------------------------------
** V000.0.1    pukuimin     08/04/2012							新建程序
** --------  ------------  ------------  -----------------   -------------------------------
*******************************************************/
CREATE procedure [dbo].[pro_GenerateModel](
					@TbName NVARCHAR(200) ---表名
)
as
begin
DECLARE @TableName     NVARCHAR(200)  --表名
DECLARE @ConstructParams     VARCHAR(8000)  --构造参数
DECLARE @ConstructGetValue     VARCHAR(8000) --构造赋值
DECLARE @FieldPropertys     VARCHAR(8000) --属性和字段
SELECT @TableName = @TbName,@ConstructParams = '',@FieldPropertys='',@ConstructGetValue=''

if isnull(@TableName,'')=''
begin
	print '表名不能为空!'
	return 0
end 

----输出存储过程名
--PRINT 'CREATE PROCEDURE dbo.pro_get_'+dbo.fun_get_UpperFirst(@tablename)+'('

SELECT
----构造参数
@ConstructParams = @ConstructParams + dbo.fun_get_tabspace(3)+dbo.fun_get_cssdt_by_sqldt(DATA_TYPE)+' '+dbo.fun_get_LowerFirst(COLUMN_NAME)+','+CHAR(10),   ---- CHAR(10)换行符
----构造赋值
@ConstructGetValue = @ConstructGetValue + dbo.fun_get_tabspace(2)+'this.'+dbo.fun_get_UpperFirst(COLUMN_NAME)+' = '+dbo.fun_get_LowerFirst(COLUMN_NAME)+';'+CHAR(10),
---属性和字段
@FieldPropertys = @FieldPropertys + dbo.fun_get_tabspace(2)+
'private '+dbo.fun_get_cssdt_by_sqldt(DATA_TYPE)+' '+dbo.fun_get_LowerFirst(COLUMN_NAME)+
    (CASE
		WHEN DATA_TYPE='NVARCHAR' OR DATA_TYPE='VARCHAR' OR DATA_TYPE='CHAR'OR DATA_TYPE='NCHAR' OR DATA_TYPE='NTEXT' OR DATA_TYPE='TEXT' OR DATA_TYPE='OUT'
        THEN ' = ""'
		when data_type='uniqueidentifier' or DATA_TYPE='image' or DATA_TYPE='variant'
		then ' = null'
    ELSE
        ' = '+dbo.fun_get_cssdt_by_sqldt(DATA_TYPE)+'.MinValue'
    END)
+';'+
CHAR(10)+dbo.fun_get_tabspace(2)+'/// <summary>'+
CHAR(10)+dbo.fun_get_tabspace(2)+'/// '+dbo.fun_get_comment(@tablename,COLUMN_NAME)+
CHAR(10)+dbo.fun_get_tabspace(2)+'/// <summary>'+
CHAR(10)+dbo.fun_get_tabspace(2)+'public '+dbo.fun_get_cssdt_by_sqldt(DATA_TYPE)+' '+dbo.fun_get_UpperFirst(COLUMN_NAME)+
CHAR(10)+dbo.fun_get_tabspace(2)+'{'+
CHAR(10)+dbo.fun_get_tabspace(3)+'get { return '+dbo.fun_get_LowerFirst(COLUMN_NAME)+';}'+
CHAR(10)+dbo.fun_get_tabspace(3)+'set { '+dbo.fun_get_LowerFirst(COLUMN_NAME)+' = value;}'+
CHAR(10)+dbo.fun_get_tabspace(2)+'}'+CHAR(10)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
set @ConstructParams=LEFT(@ConstructParams,LEN(@ConstructParams)-2) ----去掉 ‘,’ 和 换行符
set @ConstructGetValue=LEFT(@ConstructGetValue,LEN(@ConstructGetValue)-1)
set @FieldPropertys=LEFT(@FieldPropertys,LEN(@FieldPropertys)-1)
print dbo.fun_get_tabspace(1)+'/// <summary>'
print dbo.fun_get_tabspace(1)+'/// '+@TableName
print dbo.fun_get_tabspace(1)+'/// <summary>'
print dbo.fun_get_tabspace(1)+'[Serializable]'
print dbo.fun_get_tabspace(1)+'public class '+@TableName+'Model'  --
print dbo.fun_get_tabspace(1)+'{'
print dbo.fun_get_tabspace(2)+'/// <summary>'
print dbo.fun_get_tabspace(2)+'/// 无参构造函数 '
print dbo.fun_get_tabspace(2)+'/// <summary>'
print dbo.fun_get_tabspace(2)+'public '+@TableName+'Model(){}'
print dbo.fun_get_tabspace(2)+'/// <summary>'
print dbo.fun_get_tabspace(2)+'/// 有参构造函数 '
print dbo.fun_get_tabspace(2)+'/// <summary>'
print dbo.fun_get_tabspace(2)+'public '+@TableName+'Model('
print @ConstructParams
print dbo.fun_get_tabspace(2)+')'
print dbo.fun_get_tabspace(2)+'{'
print @ConstructGetValue
print dbo.fun_get_tabspace(2)+'}'
print @FieldPropertys
print dbo.fun_get_tabspace(1)+'}'
end
/*

exec [pro_GenerateModel] 'stuinfo'

*/
时间: 2024-08-01 04:34:56

sql 生成(c#model类)代码的存储过程的相关文章

SQL SERVER数据操作类代码_MsSql

复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; usi

SQL SERVER数据操作类代码

复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; usi

php生成缩略图的类代码_php技巧

<?php /** * 功能:生成缩略图 * 作者:phpox * 日期:Thu May 17 09:57:05 CST 2007 */ class CreatMiniature { //公共变量 var $srcFile=""; //原图 var $echoType; //输出图片类型,link--不保存为文件:file--保存为文件 var $im=""; //临时变量 var $srcW=""; //原图宽 var $srcH=&qu

.Net初使用MySql数据库生成Model类并与SqlServer简单对比

最近的一个项目,在.net中使用MySql数据库,背景是这样的:Sql Server要购买授权,每年100多万,本来公司这么大,这点钱也不算什么,但是领导说能省就省.对于技术人员来说,这是个挑战,时间紧,技术上还有未知的风险.想想从实习到现在,四年多的.Net研发了,都是用的Sql Server数据库,这个Mysql还是头一回用-- 一.根据数据库生成EF的Model类 //表字段信息model public class TableSchemaModel { /// <summary> ///

sql生成(c#调用存储过程返回数据表)代码的存储过程

GO /****** 对象: StoredProcedure [dbo].[pro_GenerateServiceFunction] 脚本日期: 08/04/2012 11:26:43 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pro_GenerateServiceFunction]') AND type in (N'P', N'PC')) DROP PROCEDURE [d

MySql生成.Net中Model类的存储过程

最近用Mysql,花时间写了一个过程用来生成EF的model类,有注释,挺方便,用EF类Entity自动生成的没有字段注释. 要用到的函数: DELIMITER $$ DROP FUNCTION IF EXISTS `fun_GetCSTypeFromDbType`$$ CREATE FUNCTION `fun_GetCSTypeFromDbType`(#本函数不需要在线上执行 dbtype VARCHAR(50) ) RETURNS VARCHAR(50) BEGIN DECLARE ret

sql生成(mssql对于表的delete和update做备份的触发器)代码的存储过程

GO /****** 对象: StoredProcedure [dbo].[pro_GenerateTrigger] 脚本日期: 08/13/2012 10:10:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pro_GenerateTrigger]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[pro_Generat

sql生成(插入、修改、删除数据的存储过程)代码的存储过程

GO /****** 对象: StoredProcedure [dbo].[pro_GenerateProSet] 脚本日期: 08/03/2012 11:26:43 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pro_GenerateProSet]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[pro_GenerateP

生成(c#检查输入数据、web界面控件)代码的存储过程

USE [test] GO /****** 对象: StoredProcedure [dbo].[pro_GenerateCheckInput_webControl] 脚本日期: 08/13/2012 10:10:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /***************************************************** ** DECRIPTION: 生成(c#检查输入数据.w