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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM