本例演示在SQL Server中,当用户添加一条字段信息数据到一个表中,通过触发器相应在另一个表中自动增加一个对应的字段。

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

 

SQL Server动态为表添加字段的方法CREATE TABLE [dbo].[Fields] (
SQL Server动态为表添加字段的方法 
[FieldID] [int] IDENTITY (11NOT NULL ,
SQL Server动态为表添加字段的方法 
[Name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
SQL Server动态为表添加字段的方法 
[DataType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL 
SQL Server动态为表添加字段的方法
ON [PRIMARY]
SQL Server动态为表添加字段的方法
GO
SQL Server动态为表添加字段的方法
SQL Server动态为表添加字段的方法
ALTER TABLE [dbo].[Fields] ADD 
SQL Server动态为表添加字段的方法 
CONSTRAINT [PK_Fields] PRIMARY KEY  CLUSTERED 
SQL Server动态为表添加字段的方法 (
SQL Server动态为表添加字段的方法  
[FieldID]
SQL Server动态为表添加字段的方法 )  
ON [PRIMARY] 
SQL Server动态为表添加字段的方法
GO
SQL Server动态为表添加字段的方法

 

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

 

SQL Server动态为表添加字段的方法CREATE TABLE [dbo].[Customeres] (
SQL Server动态为表添加字段的方法 
[ID] [int] IDENTITY (11NOT NULL 
SQL Server动态为表添加字段的方法
ON [PRIMARY]
SQL Server动态为表添加字段的方法
GO
SQL Server动态为表添加字段的方法
SQL Server动态为表添加字段的方法
ALTER TABLE [dbo].[Customeres] ADD 
SQL Server动态为表添加字段的方法 
CONSTRAINT [PK_Customeres] PRIMARY KEY  CLUSTERED 
SQL Server动态为表添加字段的方法 (
SQL Server动态为表添加字段的方法  
[ID]
SQL Server动态为表添加字段的方法 )  
ON [PRIMARY] 
SQL Server动态为表添加字段的方法
GO
SQL Server动态为表添加字段的方法

 

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

 

SQL Server动态为表添加字段的方法CREATE TRIGGER trigger_addField ON Fields
SQL Server动态为表添加字段的方法
FOR INSERT
SQL Server动态为表添加字段的方法
AS
SQL Server动态为表添加字段的方法
SQL Server动态为表添加字段的方法
DECLARE @FieldID int,
SQL Server动态为表添加字段的方法 
@Name varchar(50),
SQL Server动态为表添加字段的方法 
@DataType varchar(50),
SQL Server动态为表添加字段的方法 
@SQL varchar(1000)
SQL Server动态为表添加字段的方法
SQL Server动态为表添加字段的方法
SELECT @FieldID = FieldID, @Name = [Name]@DataType = DataType
SQL Server动态为表添加字段的方法
FROM Inserted
SQL Server动态为表添加字段的方法
if not exists (SELECT * FROM syscolumns 
SQL Server动态为表添加字段的方法 
where id=object_id('Customeres')
SQL Server动态为表添加字段的方法 
AND name=@Name)
SQL Server动态为表添加字段的方法
BEGIN
SQL Server动态为表添加字段的方法 
SET @SQL = 'ALTER table Customeres add ' + @Name + ' ' 
SQL Server动态为表添加字段的方法  
+ @DataType + '(64) NULL'
SQL Server动态为表添加字段的方法 
EXEC (@SQL)
SQL Server动态为表添加字段的方法
END
SQL Server动态为表添加字段的方法
PRINT @Name + ',' + @DataType
SQL Server动态为表添加字段的方法
SQL Server动态为表添加字段的方法


4 演示,在查询分析中执行

SQL Server动态为表添加字段的方法Insert into Fields ([name], DataType) values ('name''varchar')

 参考来源:
Add a column to a table unless it already exists
Using Triggers In MS SQL Server


 

相关文章:

  • 2021-12-31
  • 2021-08-30
  • 2021-05-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-31
  • 2021-12-31
猜你喜欢
  • 2021-12-31
  • 2021-07-25
  • 2021-12-31
  • 2021-12-09
  • 2021-10-01
  • 2021-09-18
  • 2022-12-23
相关资源
相似解决方案