@InsertSql=@InsertSql+@sTAB+@sTAB+@sTAB+'sp.Parameters.'+column_name+' = '+@ModelVarName+'.'+column_name+';'+@sCRLF,
    
@UpdateSql=@UpdateSql+@sTAB+@sTAB+@sTAB+'sp.Parameters.'+column_name+' = '+@ModelVarName+'.'+column_name+';'+@sCRLF
    
from information_schema.columns 
    
where table_name=@TableName
 
set @InsertSql=@InsertSql+@sCRLF
set @InsertSql=@InsertSql+@sTAB+@sTAB+@sTAB+'sp.ExecuteNonQuery();'+@sCRLF
set @InsertSql=@InsertSql+@sTAB+@sTAB+'}'

set @UpdateSql=@UpdateSql+@sCRLF
set @UpdateSql=@UpdateSql+@sTAB+@sTAB+@sTAB+'sp.ExecuteNonQuery();'+@sCRLF
set @UpdateSql=@UpdateSql+@sTAB+@sTAB+'}'




declare @Params varchar(max),@SetParams varchar(max),@CommentParams varchar(max)
set @Params=''
set @SetParams=''
set @CommentParams=''

select 
    
@Params=@Params
        
+(case c.data_type when 'bigint' then 'Nullable<Int64>' 
                           
when 'int' then 'Nullable<Int32>' 
                           
when 'smallint' then 'Nullable<Int16>'
                           
when 'tinyint' then 'Nullable<Byte>'
                           
when 'smalldatetime' then 'Nullable<DateTime>'
                           
when 'datetime' then 'Nullable<DateTime>'
                           
else 'string' end)
        
+' '+lower(substring(c.column_name,1,1))
        
+substring(c.column_name,2,len(c.column_name))+',',
    
@SetParams=@SetParams+@sTAB+@sTAB+@sTAB+'sp.Parameters.'
        
+c.column_name+' = '
        
+lower(substring(c.column_name,1,1))
        
+substring(c.column_name,2,len(c.column_name))+';'+@sCRLF,
    
@CommentParams=@CommentParams+@sTAB+@sTAB+'/// <param name="'
        
+lower(substring(c.column_name,1,1))
        
+substring(c.column_name,2,len(c.column_name))
        
+'"></param>'+@sCRLF

    
from information_schema.COLUMNS c
    
inner join information_schema.KEY_COLUMN_USAGE kcu
    
on c.table_name=kcu.table_name and c.column_name=kcu.column_name
where c.table_name=@TableName

--delete the last ','
set @Params=substring(@Params,1,len(@Params)-1)

set @CommentParams=@CommentParams+@sTAB+@sTAB+'/// <param name="session">Database session</param>'+@sCRLF

set @DeleteSql=@DeleteSql+@sTAB+@sTAB+'/// <summary>'+@sCRLF
set @DeleteSql=@DeleteSql+@sTAB+@sTAB+'/// Author:    : '+@CommentAuthor+@sCRLF
set @DeleteSql=@DeleteSql+@sTAB+@sTAB+'/// CreateDate : '+convert(varchar(100),getdate(),111)+@sCRLF
set @DeleteSql=@DeleteSql+@sTAB+@sTAB+'/// Description: Delete a record from table '+@TableName+' by primary key'+@sCRLF
set @DeleteSql=@DeleteSql+@sTAB+@sTAB+'/// </summary>'+@sCRLF
set @DeleteSql=@DeleteSql+@CommentParams
set @DeleteSql=@DeleteSql+@sTAB+@sTAB+'/// <returns>void</returns>'+@sCRLF
set @DeleteSql=@DeleteSql+@sTAB+@sTAB+'public void Delete'+@TableAlias+'('+@Params+', IDataAccessSession session)'+@sCRLF
set @DeleteSql=@DeleteSql+@sTAB+@sTAB+'{'+@sCRLF
set @DeleteSql=@DeleteSql+@sTAB+@sTAB+@sTAB+'pr_'+@TableName+'_Delete sp=new pr_'+@TableName+'_Delete(session);'+@sCRLF
set @DeleteSql=@DeleteSql+@sCRLF

set @DeleteSql=@DeleteSql+@SetParams+@sCRLF
set @DeleteSql=@DeleteSql+@sTAB+@sTAB+@sTAB+'sp.ExecuteNonQuery();'+@sCRLF
set @DeleteSql=@DeleteSql+@sTAB+@sTAB+'}'


set @SelectSql=@SelectSql+@sTAB+@sTAB+'/// <summary>'+@sCRLF
set @SelectSql=@SelectSql+@sTAB+@sTAB+'/// Author:    : '+@CommentAuthor+@sCRLF
set @SelectSql=@SelectSql+@sTAB+@sTAB+'/// CreateDate : '+convert(varchar(100),getdate(),111)+@sCRLF
set @SelectSql=@SelectSql+@sTAB+@sTAB+'/// Description: Select a record from table '+@TableName+' by primary key'+@sCRLF
set @SelectSql=@SelectSql+@sTAB+@sTAB+'/// </summary>'+@sCRLF
set @SelectSql=@SelectSql+@CommentParams
set @SelectSql=@SelectSql+@sTAB+@sTAB+'/// <returns>A model of table '+@TableName+'</returns>'+@sCRLF
set @SelectSql=@SelectSql+@sTAB+@sTAB+'public '+@ModelClassName+' Get'+@TableAlias+'ByKey('+@Params+', IDataAccessSession session)'+@sCRLF
set @SelectSql=@SelectSql+@sTAB+@sTAB+'{'+@sCRLF
set @SelectSql=@SelectSql+@sTAB+@sTAB+@sTAB+'pr_'+@TableName+'_Select sp=new pr_'+@TableName+'_Select(session);'+@sCRLF
set @SelectSql=@SelectSql+@sCRLF
set @SelectSql=@SelectSql+@sTAB+@sTAB+@sTAB+'sp.Parameters.Cmd = "KEY";'+@sCRLF
set @SelectSql=@SelectSql+@SetParams+@sCRLF
set @SelectSql=@SelectSql+@sTAB+@sTAB+@sTAB+'sp.ExecuteQuery();'+@sCRLF
set @SelectSql=@SelectSql+@sCRLF
--set @SelectSql=@SelectSql+@sTAB+@sTAB+@sTAB+@ModelClassName+' '+@ModelVarName+' = null;'+@sCRLF
--
set @SelectSql=@SelectSql+@sTAB+@sTAB+@sTAB+'for (int i = 0; i < sp.QueryResults.Count;i++)'+@sCRLF
--
set @SelectSql=@SelectSql+@sTAB+@sTAB+@sTAB+'{'+@sCRLF
--
set @SelectSql=@SelectSql+@sTAB+@sTAB+@sTAB+@sTAB+@ModelVarName+' = sp.QueryResults[i];'+@sCRLF
--
set @SelectSql=@SelectSql+@sTAB+@sTAB+@sTAB+'}'+@sCRLF
--
set @SelectSql=@SelectSql+@sCRLF
--
set @SelectSql=@SelectSql+@sTAB+@sTAB+@sTAB+'return '+@ModelVarName+';'+@sCRLF
set @SelectSql=@SelectSql+@sTAB+@sTAB+@sTAB+'return sp.QueryResults();'+@sCRLF
set @SelectSql=@SelectSql+@sTAB+@sTAB+'}'


set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+'/// <summary>'+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+'/// Author:    : '+@CommentAuthor+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+'/// CreateDate : '+convert(varchar(100),getdate(),111)+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+'/// Description: Select all records from table '+@TableName+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+'/// </summary>'+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+'/// <param name="session">Database session</param>'+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+'/// <returns>IList contains all records in table '+@TableName+'</returns>'+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+'public IList<'+@ModelClassName+'> GetAll'+@TableAlias+'s(IDataAccessSession session)'+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+'{'+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+@sTAB+'pr_'+@TableName+'_Select sp=new pr_'+@TableName+'_Select(session);'+@sCRLF
set @SelectAllSql=@SelectAllSql+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+@sTAB+'sp.Parameters.Cmd = "All";'+@sCRLF
set @SelectAllSql=@SelectAllSql+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+@sTAB+'sp.ExecuteQuery();'+@sCRLF
set @SelectAllSql=@SelectAllSql+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+@sTAB+'return sp.QueryResults;'+@sCRLF
set @SelectAllSql=@SelectAllSql+@sTAB+@sTAB+'}'



set @sql=''
if @InsertFlag=1 set @sql=@sql+@InsertSql+@sCRLF+@sCRLF
if @UpdateFlag=1 set @sql=@sql+@UpdateSql+@sCRLF+@sCRLF
if @DeleteFlag=1 set @sql=@sql+@DeleteSql+@sCRLF+@sCRLF
if @SelectFlag=1 set @sql=@sql+@SelectSql+@sCRLF+@sCRLF
if @SelectAllFlag=1 set @sql=@sql+@SelectAllSql+@sCRLF+@sCRLF

--print @InsertSql
--
print @UpdateSql
--
print @DeleteSql
print @sql

相关文章: