zoukankan      html  css  js  c++  java
  • 根据字段表 自动创建 表SQL

    create  PROC  CreateTableSql
    @TableName varchar(50)
    AS
    
    
    declare @FieldName varchar(50) ,@FieldDescrible varchar(50) ,@DbType varchar(50) 
    declare @DbLength varchar(50) ,@DbDecimal  varchar(50) ,@Default varchar(50) ,@IsIdentity bit ,@IsNull bit ,@IsPrimaryKey bit 
    declare @CreateSql varchar(8000),@AddFieldSql varchar(300),@FieldSql varchar(3000)
    declare @PrimaryKey varchar(200) ,@NULL varchar(10) ,@Identity varchar(20),@PropertySql varchar(8000)
    set @PrimaryKey='' 
    set @FieldSql=''
    SET @PropertySql=''
    DECLARE MyCursor CURSOR FOR 
     select  FieldName,isnull(FieldDescrible,''),isnull(DbType,''),DbLength,DbDecimal,isnull([Default],''),IsIdentity, 
     isnull([IsNull],0),IsPrimaryKey 
      from Fields   where TableName =@TableName order by SortNO 
    OPEN MyCursor 
    FETCH NEXT FROM MyCursor 
    INTO @FieldName,@FieldDescrible,@DbType,@DbLength,@DbDecimal,@Default,@IsIdentity,@IsNull,@IsPrimaryKey
    
    WHILE @@FETCH_STATUS = 0
    BEGIN
    
    if @IsNull=1   set @NULL =' NULL'   ELSE set @NULL =' NOT  NULL' 
    if @IsPrimaryKey =1  set @NULL =' NOT  NULL'   
    
    if @DbType in ('uniqueidentifier','int','datetime','timestamp','smallint') set @DbLength=''
       else set @DbLength='('+@DbLength+')'
    if @IsIdentity=1  set @Identity =' IDENTITY(1,1) ' else set @Identity =''
    
    if @Default=''
      set @AddFieldSql = '  ['+ @FieldName+'] ' + @DbType +@DbLength +@Identity+ @Null +','
    else 
      set @AddFieldSql = '  ['+ @FieldName+'] ' + @DbType +@DbLength +@Identity+ @Null +' default '+@Default +','
     if @FieldSql='' 
       set @FieldSql= @AddFieldSql
     else 
       set @FieldSql= @FieldSql+ CHAR(10) +@AddFieldSql
      
    if @IsPrimaryKey =1
    begin
     if @PrimaryKey<>'' set @PrimaryKey= @PrimaryKey+'['+ @FieldName+'] ' 
     if @PrimaryKey='' set @PrimaryKey= '['+ @FieldName+'] ' 
    end
     
    SET @PropertySql=@PropertySql+CHAR(10)+ ' GO'+ CHAR(10)+ 'EXEC sys.sp_addextendedproperty @name=N'+''''+'MS_Description'+''''+', @value=N'+''''+@FieldDescrible +''''+', @level0type=N'+''''+'SCHEMA'+''''
         +',@level0name=N'+''''+'dbo'+'''' +', @level1type=N'+''''+'TABLE'+''''+',@level1name=N'+''''+@TableName+''''+', @level2type=N'+''''+'COLUMN'+''''+',@level2name=N'+''''+@FieldName+'''' 
    
    FETCH NEXT FROM MyCursor 
    INTO @FieldName,@FieldDescrible,@DbType,@DbLength,@DbDecimal,@Default,@IsIdentity,@IsNull,@IsPrimaryKey
    
    END
    CLOSE MyCursor;
    DEALLOCATE MyCursor;
    
    set @CreateSql =' if exists (select * from sysobjects where name='''+@TableName +''')'
    set @CreateSql=@CreateSql+  CHAR(10) + ' drop table   '+@TableName
    set @CreateSql=@CreateSql+  CHAR(10) + ' GO   '
    set @CreateSql=@CreateSql+  CHAR(10) + ' CREATE TABLE  '+@TableName+  CHAR(10)+'('
    set @CreateSql=@CreateSql+  CHAR(10) + ''+@FieldSql
    set @CreateSql=@CreateSql+  CHAR(10) + '  CONSTRAINT [PK_'+ @TableName +'] PRIMARY KEY CLUSTERED  ('
    set @CreateSql=@CreateSql+  CHAR(10) +'  '+ @PrimaryKey+' ASC  '+  CHAR(10)+'  )'
    set @CreateSql=@CreateSql+  CHAR(10) + '  WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] '
    set @CreateSql=@CreateSql+  CHAR(10) +' ) ON [PRIMARY] '
    
    
    
    PRINT @CreateSql
    print @PropertySql 
    View Code
  • 相关阅读:
    C# 使用NPlot绘图技巧
    jsp页面必填项如何加红星号*
    org.mybatis.spring.mapper.MapperScannerConfigurer 类作用
    mybatis对java自定义注解的使用——入门篇
    1.报表TIBCO Jaspersoft Studio工具教程入门--生成jrxml和jasper文件 然后拖拽到项目中 跟ireport一样
    eclipse安装weblogic Server服务器
    创建一个java项目并部署到weblogic服务器
    weblogicjsp编译:查看编译后的java中间代码
    html标签的target属性应用
    5.把报表集成到Web应用程序中-生成网页和导出两种方式
  • 原文地址:https://www.cnblogs.com/lhyqzx/p/6863251.html
Copyright © 2011-2022 走看看