Sql动态添加字段的正确姿势

Posted 李伟(CodeL)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql动态添加字段的正确姿势相关的知识,希望对你有一定的参考价值。

 

如何给指定表动态添加字段?

一、创建一张表【Tbl_AutoFileds】

(tableName表名,fieldName字段名,dataType数据类型,length长度  isnull 是否允许为null)

技术分享

二、为【Tbl_AutoFileds】创建表触发器

SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO
-- ============================================= -- Author:<作者> -- Create date: <20160320 Date,,> -- Description:<当表插入数据时向相应的表增加列>
-- =============================================
ALTER TRIGGER [dbo].[Filed_Auto] ON [dbo].[Tbl_AutoFileds] for insert AS DECLARE@tb_Name varchar(50), @coloun varchar(50), @datatype varchar(50), @length varchar(1000), @isnull varchar(10), @sql varchar(200)BEGINSET NOCOUNT ON; select @tb_Name=tabld_name,@coloun=fieldName,@datatype=datatype,@length=[length],@isnull=[isnull] from inserted if not exists (select * from syscolumns where id=object_id(@tb_Name) and name=@coloun) begin set @sql=ALTER table +@tb_Name+ add +@coloun+ +@datatype+(+@length+) +@isnull exec (@sql) end


三、向表添加内容,同时向对应表增加列

插入内容到Tbl_AutoFields表会促发触发器,从而向指定表中动态添加了字段:

Insert into Tbl_AutoFields values(Tbl_Test,MyField,nvarchar,200,null);

我们向Tbl_Test表中添加了数据类型为nvarchar(200)的字段MyField.

推荐技术类微信公众号:CodeL

以上是关于Sql动态添加字段的正确姿势的主要内容,如果未能解决你的问题,请参考以下文章

golang中调用c的正确姿势

[mybatis]动态sql_sql_抽取可重用的sql片段

IDEA 创建 动态 Web 项目的正确姿势

如何正确地将多个片段添加到片段过渡?

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段

数据库动态添加字段