从接触数据库到现在,我们数据库中的表一般是静态的的。做项目的时候也是根据业务的需求把每个表都建立完整了,才开始开发。而并非所有的表都是静态的,现在我们开发时就遇到这样的一个问题,我们需要根据用户对现实粮仓的布局在数据库中动态建表。
一、问题
系统的一些表必须在本系统在实际运行过程中生成。
二、途径
在系统中动态创建这些表,依据具体的情况,将每个仓建立一张这样的表。
三、项目实例
1、简单例子
<span style="font-size:18px;">Declare @sql VarChar(1000) '定义查询变量 SELECT @sql = 'Create Table ' + @TableName + '(' SELECT @sql = @sql + 'ID int NOT NULL Primary Key,FieldName VarChar(10))' '拼接字符串 Exec (@sql) '执行字符串 </span>
2、项目实例
传入参数为表名
<span style="font-size:14px;"> Public Function CreateStorageHumi(intStorage As Integer) As Boolean Implements ICreateStorageHumi.CreateStorageHumi '拼接表名 Dim tableName As String '定义创建表时使用的参数 Dim sqlparam(0 To 1) As sqlParameter '创建温度测量表的sql语句 Dim strCreate As String = "exec('create table '+@storageNumber+' '+@string)" 'StorageHumi为表名前半部分,intStorage为每个仓的仓号 tableName = "StorageHumi" & intStorage '传递表名参数 sqlparam(0) = New sqlParameter("@storageNumber",tableName) '插入表中字段 sqlparam(1) = New sqlParameter("@string","(dectDate date not null,dectTime datetime not null,inTemp varchar(5) not null)") '执行创建语句,创建该数据库 sqlHelper.UpdDelAlter(strCreate,CommandType.Text,sqlparam) Return True End Function</span>