zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Object-C,NSSet,不可变集合
    NYIST 860 又见01背包
    NYIST 1070 诡异的电梯【Ⅰ】
    HDU 1542 Atlantis
    HDU 4756 Install Air Conditioning
    CodeForces 362E Petya and Pipes
    HDU 4751 Divide Groups
    HDU 3081 Marriage Match II
    UVA 11404 Palindromic Subsequence
    UVALIVE 4256 Salesmen
  • 原文地址:https://www.cnblogs.com/codelir/p/5300675.html
Copyright © 2011-2022 走看看