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

时间: 2024-08-14 21:43:10

Sql动态添加字段的正确姿势的相关文章

SQL server 添加字段问题

select a.ADJUSTMENT_ID,a.ADJUSTMENT_CODE into tmp20161103 from adjustment_code a ADJUSTMENT_ID会从源表中保留自动增长 select * from tmp20161103 添加列的语法: alter table [表名] add [字段名] 字段属性 default [值] 添加列tt,默认值为0 alter table tmp20161103 add tt int default 0 插入行数据 ins

向elasticsearch中动态添加字段报错问题和向elasticsearch中添加嵌套数据类型数据--工作学习记录

今天在对已有的es库中进行update操作时发现update操作失败(提示说是操作不允许).然后发现原因是:es中type的“dynamic”属性为“strict”. 然后感觉有两种方法解决: 1.向type中新增字段,再动态添加 2.修改es中dynamic属性为true(这种的话改动太大就算了) 之后我就通过第一种方法进行解决.但是,要添加的数据类型是嵌套数据类型. 如果就像普通的数据那样进行添加的话,es引擎内部会把对象数组展开成扁平的数据结构,数据之间的依赖关系会丢失. 例如:"tag&

Hive分区表动态添加字段

场景描述: 公司埋点项目,数据从接口服务写入kafka集群,再从kafka集群消费写入HDFS文件系统,最后通过Hive进行查询输出.这其中存在一个问题就是:埋点接口中的数据字段是变化,后续会有少量字段添加进来.这导致Hive表结构也需要跟着变化,否则无法通过Hive查询到最新添加字段的数据. 解决办法: 为数据表添加字段,字段必须添加到已有字段的最后面.因为已经存在的数据是按照之前的表结构写入到HDFS文件中的,当添加新字段时为了能兼容前面已经存在的数据.在新增的字段加到分区表后,之前已经存在

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

打开 IDEA,点击 Create New Project 左侧选中Java Enterprise, Java EE version 下拉框选择 Java 7 解释一下,这里选择 Java 7 是为了解决一个 IDEA 在创建动态 Web 项目流程上的小 Bug. 左侧选中 Java,然后再选中回 Java Enterprise,Java EE version 下拉框选择 Java 8,选择项目其他相应信息 如果没有上面切换 Java EE version 的操作,那么这一步在选中 Web Ap

解决mysql的动态添加字段以及数据的方法(基于python3.6)

arr = [] #arr为列表 test = ','.join([item for item in arr]) #此处需要拼接,一定要列表的拼接,如果将列表转为元组,之后变成str带入到字段处是错误的(纠结了一上午,真是臭妹妹!) sql = "insert into customer ("+test+") values (%s)" % ','.join(['%s'] * len(arr))#sql文的拼接需要将列表的拼接直接放入,然后数据需要多个%s,之后再将列

sql server 添加字段并且赋默认值和说明

alter table MonthEnd_Unit   add MEU_IsImport bit null default(0) go EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否是导入的月结' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MonthEnd_Unit', @level2type

添加.gitignore的正确姿势

# Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa *.class local.properties 如果不生效,可以考虑以下命令 git rm -r --cached .git add .git commit -m 'update .gitignore'

用SQL语句添加删除修改字段

1.增加字段     alter table docdsp     add dspcodechar(200)2.删除字段     ALTER TABLE table_NAME DROP COLUMNcolumn_NAME3.修改字段类型     ALTER TABLE table_name     ALTER COLUMNcolumn_name new_data_type4.sp_rename 改名     EXEC sp_rename '[dbo].[Table_1].[filedName1]

动态添加子视图 UIView 的正确方法

很多时候哥比较喜欢用代码添加视图,特别是要同时加很多UIView时,而且跟 xib 比起来代码更容易管理,在多人的项目中代码不容易 conflict. 但小牛哥最近发现很多新人都不太清楚正确的使用方法,以下是哥的一些总结,有何不妥欢迎大家一起讨论: (前提条件是这样的:有一个 View Controller  和相应的 xib 文件,我们需要为这个controller 动态加上其他的子视图) UIViewController 中动态添加 UIView 正确的步骤应该是: 1. 在 viewDid