教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 sql动态添加字段实例解析

sql动态添加字段实例解析

发布时间:2016-03-28   编辑:jiaochengji.com
为大家介绍下,在sql server中动态添加表字段的方法,有时需要为表动态添加字段,有需要的朋友参考下。

实现功能:
在SQL Server表中,当用户添加一条字段信息数据到一个SQL Server表中,通过触发器相应在另一个表中自动增加一个对应的字段。

1,首先,建立一个字段信息表Fields
 

复制代码 代码示例:
CREATE TABLE [dbo].[Fields] ( 
 [FieldID] [int] IDENTITY (1, 1) NOT NULL , 
 [Name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , 
 [DataType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL  
) ON [PRIMARY] 
GO 
 
ALTER TABLE [dbo].[Fields] ADD  
 CONSTRAINT [PK_Fields] PRIMARY KEY  CLUSTERED  
 ( 
  [FieldID] 
 )  ON [PRIMARY]  
GO

2,建立一个动态字段表Customeres, 当Fields每增加一条记录,本表就相应增加一个字段。
 

复制代码 代码示例:
CREATE TABLE [dbo].[Customeres] ( 
 [ID] [int] IDENTITY (1, 1) NOT NULL  
) ON [PRIMARY] 
GO 
 
ALTER TABLE [dbo].[Customeres] ADD  
 CONSTRAINT [PK_Customeres] PRIMARY KEY  CLUSTERED  
 ( 
  [ID] 
 )  ON [PRIMARY]  
GO 

3,为SQL Server表Fields新增一个触发器,当增加数据时,都会自动调用此触发器。
注意:字段的长度硬编码,只是为了演示目的,应根据自己的需要来动态调整长度。
 

复制代码 代码示例:
CREATE TRIGGER trigger_addField ON Fields 
FOR INSERT 
AS 
 
DECLARE @FieldID int, 
 @Name varchar(50), 
 @DataType varchar(50), 
 @SQL varchar(1000) 
 
SELECT @FieldIDFieldID = FieldID, @Name = [Name], @DataTypeDataType = DataType 
FROM Inserted 
if not exists (SELECT * FROM syscolumns  
 where id=object_id('Customeres') 
 AND name=@Name) 
BEGIN 
 SET @SQL = 'ALTER table Customeres add ' + @Name + ' '  
  + @DataType + '(64) NULL' 
 EXEC (@SQL) 
END 
PRINT @Name + ',' + @DataType 

4,在查询分析中执行
 

复制代码 代码示例:
Insert into Fields ([name], DataType) values ('name', 'varchar')

您可能感兴趣的文章:
sql动态添加字段实例解析
Mysql 自增字段设定基值的sql语句
mysql alter语句添加、修改、删除字段的例子
PHP生成静态页面
Mysql数据库操作(php教程四)
dedecms中首页调用单页内容并过滤html
【七天从零实现ORM框架】Day02:database/sql基础
mysql5分页查询深入探讨
dedecms的常见SQL标签调用
php防范sql注入方法与实例代码

关键词: 添加字段  增加字段   
[关闭]
~ ~