Linq批量建表

    public JsonResult CreateTable()
        {
            db = new RZBDbContext();
            var query = (from c in db.Clients
                        select new {
                            pre = c.Prefix
                        }).ToList();
            foreach (var d in query)
            {
                //遍历循环client 生成表
                //创建数据表
           var file = Server.MapPath("~/App_Data/create_log.sql");
                var sql = System.IO.File.ReadAllText(file);
                sql = sql.Replace("{t}", d.pre);
                db.Database.ExecuteSqlCommand(sql);
                _log.Info("建立表:"+ d.pre+"_Log");
                //Thread.Sleep(1000);
            }
            ResultModel model = new ResultModel();
            model.StrMessage = "Welcome";
            return Json(model, JsonRequestBehavior.AllowGet);
        }

sql文件:

CREATE TABLE [{t}_QueryLog](
    [ID] [uniqueidentifier] NOT NULL,
    [LoginUserID] [uniqueidentifier] NOT NULL,
    [IdentityID] [nvarchar](50) NOT NULL,
    [IdentityName] [nvarchar](200) NOT NULL,
    [QueryTime] [datetime] NOT NULL,
    [IsHistory] [bit] NOT NULL,
    [IsCharge] [bit] NOT NULL,
    [IsSimpleCheck] [bit] NOT NULL,
    [ext1] [nvarchar](50) NULL,
    [ext2] [nvarchar](50) NULL,
    [CreateUser] [nvarchar](50) NULL,
    [CreateTime] [datetime] NULL,
    [UpdateUser] [nvarchar](50) NULL,
    [UpdateTime] [datetime] NULL
) ON [PRIMARY]

;

/****** Object:  Index [IX_{t}_QueryLog_IdentityID]    Script Date: 03/06/2014 11:07:13 ******/
CREATE NONCLUSTERED INDEX [IX_{t}_QueryLog_IdentityID] ON [dbo].[{t}_QueryLog]
(
    [IdentityID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
;

/****** Object:  Index [IX_{t}_QueryLog_IdentityName]    Script Date: 03/06/2014 11:07:13 ******/
CREATE NONCLUSTERED INDEX [IX_{t}_QueryLog_IdentityName] ON [dbo].[{t}_QueryLog]
(
    [IdentityName] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
;

/****** Object:  Index [IX_{t}_QueryLog_QueryTime]    Script Date: 03/06/2014 11:07:13 ******/
CREATE NONCLUSTERED INDEX [IX_{t}_QueryLog_QueryTime] ON [dbo].[{t}_QueryLog]
(
    [QueryTime] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
;

ALTER TABLE [dbo].[{t}_QueryLog] ADD  CONSTRAINT [DF_{t}_QueryLog_ID]  DEFAULT (newid()) FOR [ID]
;

ALTER TABLE [dbo].[{t}_QueryLog] ADD  CONSTRAINT [DF_{t}_QueryLog_QueryTime]  DEFAULT (getdate()) FOR [QueryTime]
;

ALTER TABLE [dbo].[{t}_QueryLog] ADD  CONSTRAINT [DF_{t}_QueryLog_IsHistory]  DEFAULT ((0)) FOR [IsHistory]
;

ALTER TABLE [dbo].[{t}_QueryLog] ADD  CONSTRAINT [DF_{t}_QueryLog_IsCharge]  DEFAULT ((1)) FOR [IsCharge]
;

ALTER TABLE [dbo].[{t}_QueryLog] ADD  CONSTRAINT [DF_{t}_QueryLog_IsSimpleCheck]  DEFAULT ((1)) FOR [IsSimpleCheck]
;

ALTER TABLE [dbo].[{t}_QueryLog] ADD  CONSTRAINT [DF_{t}_QueryLog_CreateTime]  DEFAULT (getdate()) FOR [CreateTime]
;

ALTER TABLE [dbo].[{t}_QueryLog] ADD  CONSTRAINT [DF_{t}_QueryLog_UpdateTime]  DEFAULT (getdate()) FOR [UpdateTime]
;
时间: 2024-10-25 18:34:30

Linq批量建表的相关文章

Mysql 批量建表存储过程

最近项目中用到了使用存储过程批量建表的功能,记录下来: USE db_test_3; drop procedure if EXISTS `createTablesWithIndex`; create procedure createTablesWithIndex() BEGIN DECLARE `@i` int(11); DECLARE `@createSql` VARCHAR(2560); DECLARE `@createIndexSql1` VARCHAR(2560); DECLARE `@

SqlServer 循环建表、删除表、更新表

常用于分库分表 1.批量删除 declare @outter int declare @inner int declare @tablePrefix varchar(30) declare @tableName varchar(36) set @outter=1 set @inner=0 while (@outter<=12) begin set @tablePrefix='BankPayOrder_'+convert(varchar,@outter)+'_' while(@inner<=9)

Mysql建表与索引使用规范详解

一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. 四. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比. 五. MySQL使用时,一条SQL语句只能使用一个表的一个索引.所有的字段类型都可以索引,多列索引的属性最多15个. 六. 如果可以在多个索引中进行选择,My

hbase建表create高级属性 //hbase 表预分区也就是手动分区 这个很重要

2019/2/19 星期二 hbase建表create高级属性 //hbase 表预分区也就是手动分区 这个很重要 下面几个shell 命令在后续的hbase 操作中可以起到很到的作用,且主要体现在建表的过程中,看下面几个create 属性1.BLOOMFILTER 默认是NONE 是否使用布隆过虑使用何种方式布隆过滤可以每列族单独启用.使用HColumnDescriptor.setBloomFilterType(NONE |ROW | ROWCOL) 对列族单独启用布隆.Default = N

利用shell脚本批量修改表

最近公司里因为开发新功能,程序员需要快速在某一个库里的所有表添加字段,于是就用shell脚本简单快速实现批量修改表添加字段 #!/bin/bash export mysql_bin=/usr/local/mysql/bin export database=database export tables=`$mysql_bin/mysql -Bse "use ${database};show tables;"` for i in ${tables}         do          

mysql表名等大小写敏感问题、字段类型timestamp、批量修改表名、oracle查询历史操作记录等

mysql表名等大小写敏感问题:http://blog.csdn.net/postnull/article/details/72455768: 1 MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的: 2 1.数据库名与表名是严格区分大小写的: 3 2.表的别名是严格区分大小写的: 4 3.列名与列的别名在所有的情况下均是忽略大小写的: 5 4.字段内容默认情况下是大小写不敏感的. ================================================

初触hibernate01--MYSQL建表时type=InnoDB和Engine=InnoDB注意点

第一次运行程序时,将Hibernte中的hibernate.hbm2ddl.auto设置成create(或者是update),让Hibernate帮助自动建表,但不成功,报了如下信息: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 1

(没写完)SQL数据库建表(基础大牛请飘过就好谢谢)

--SQL表与表之间的关系-- 首先要学会找表与表之间的关系 只有把表和表之间的关系找好才 可以键表,并方便查询. 一.表与表之间有三种关系 (1)两表之间的主键存在一对一的关系 随便在一表中加上另一表的主键为该表的外键. (2)两表之间的主键存在一对多的关系 在"一"表中创建"多"表的主键为"一"表的外键. (3)两表之间的主键存在多对多的关系 重新创建一个新表并加如两个表的主键为该表的外键. 再加上两表之间的关系属性. --        

ORACLE数据库建表空间、建用户、分配用户表空间,分配用户权限

1.建表空间 create tablespace 表空间名 datafile  'D:\app\Administrator\oradata\orcl\ABC.DBF' size 100M autoextend on next 50M extent management 2.建用户 create  user 用户名  identified by password default tablespace 表空间名 temporary tablespace temp   (默认表空间名) 3.给用户赋予