首页 > 数据库 >sql sever 表处理(增删改查等)

sql sever 表处理(增删改查等)

时间:2024-01-17 18:14:54浏览次数:32  
标签:-- 改查 表处理 字段 表名 TABLE NULL ALTER sever

-------------------------------------------------------------------------查
--查找表里是否有某个字段:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME  ='字段名'
AND Table_Name like '[^V]%'

-------------------------------------------------------------------------增
--新增字段:
ALTER TABLE 表名 ADD 字段 char(1) NOT NULL DEFAULT '0' WITH VALUES;	
ALTER TABLE 表名 ADD  字段 NVARCHAR (500) CONSTRAINT [DF_表名_字段] DEFAULT ('') NOT NULL

--新增带有约束的字段:
ALTER TABLE 表名 ADD 字段 CHAR (60) NULL  
ALTER TABLE 表名 ADD  CONSTRAINT DF_表名_字段  DEFAULT ('')  FOR 字段
		
ALTER TABLE 表名 ALTER COLUMN 字段  CHAR (60)  NOT NULL

--新增多个字段:
ALTER TABLE 表名 ADD 
	[字段1] [varchar](255) NOT NULL DEFAULT '' WITH VALUES,
	[字段2] [varchar](255) NOT NULL DEFAULT '' WITH VALUES,
	[字段3] [varchar](255) NOT NULL DEFAULT '' WITH VALUES,
	[字段4] [char](2) NOT NULL DEFAULT '00' WITH VALUES;

-------------------------------------------------------------------------删
--删除表字段:
ALTER TABLE 表名 DROP COLUMN 字段
--删除有约束的字段:
1.查询约束:EXEC sp_helpconstraint @objname='表名'
2.ALTER TABLE 表名 DROP CONSTRAINT DF__约束名称
3.ALTER TABLE 表名 DROP COLUMN 字段

-------------------------------------------------------------------------改
--修改表字段名:
EXECUTE  sp_rename '表名.字段名','新字段名'
--修改表字段类型:
ALTER TABLE 表名  ALTER COLUMN 字段名  类型

--修改有约束表字段类型和默认值:
ALTER TABLE 表名 DROP CONSTRAINT [DF_表名_字段]
ALTER TABLE 表名 ALTER COLUMN [字段]  CHAR(60) NOT NULL
ALTER TABLE 表名 ADD CONSTRAINT DF_表名_字段  DEFAULT ('')  FOR [字段]

-------------------------------------------------------------------------主键
--查找表主键:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.' + CONSTRAINT_NAME), 'IsPrimaryKey') = 1
AND TABLE_NAME = 表名

--创建主键约束:
ALTER TABLE 表名 ADD CONSTRAINT [主键约束名称] PRIMARY KEY (主键字段,主键字段,...)

--创建外键约束:
ALTER TABLE 表名 ADD CONSTRAINT [外键约束名称] FOREIGN KEY (字段) REFERENCES 外链表名(字段)

--创建复合主键
ALTER TABLE 表名1 ADD CONSTRAINT [复合主键约束名称] FOREIGN KEY (字段1, 字段2) REFERENCES 表名2(字段1, 字段2)

-------------------------------------------------------------------------复制表
--复制表数据到另一个表:
INSERT INTO 目标表名 (字段1, 字段2, 字段3)
SELECT 字段1, 字段2, 字段3
FROM 被拷贝表名;
	--char类型会自动补足位数,varchar类型不会自动补足位数

-------------------------------------------------------------------------临时表
--创建临时表:
CREATE TABLE #Temp
(
    id INT NOT NULL,
    customer_name NVARCHAR(50) NOT NULL,
    age INT,
    CONSTRAINT PK_Globals PRIMARY KEY(id)
)
INSERT INTO #Temp VALUES(1,'老王',20),(2,'老张',30),(3,'老李',25)

--查询临时表:
SELECT * FROM #Temp

--查询数据并写入临时表:
SELECT * INTO #Temp FROM 表名;

--删除临时表:
DROP TABLE #Temp;

-------------------------------------------------------------------------解锁表
1.查询被锁表:
SELECT request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName
FROM sys.dm_tran_locks WHERE resource_type='OBJECT';

2.解锁:
DECLARE @spid INT
SET @spid = 89 --锁表进程(89上面查询的spid)
DECLARE @sql VARCHAR(1000)
SET @sql='kill '+CAST(@spid as VARCHAR)
EXEC(@sql)

-------------------------------------------------------------------------数形转换
/*创建带有虚拟列的结果集*/
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS RowKey, --虚拟列
	 Sumu ,ID
INTO #TempResult
FROM PlanContact_F1_R;


DECLARE @Allergen NVARCHAR(MAX);
DECLARE @RetVal CHAR(60);

DECLARE @RowCount INT = 1;
DECLARE @TotalRows INT;

/*获取结果集总行数*/
SELECT @TotalRows = COUNT(*) FROM #TempResult; 

/*循环更新*/
WHILE @RowCount <= @TotalRows
BEGIN

 /*从结果集中获取虚拟列和目标值*/
 SELECT @Allergen = Sumu, @RetVal = '000000000000000000000000000099999999999999999999999999999999'
 FROM #TempResult
 WHERE RowKey = @RowCount;

 /*如果@Allergen里面包含小麦,将@RetVal对应的下标设为'1'*/
 IF PATINDEX('%小麦%', @Allergen) > 0
    SET @RetVal = STUFF(@RetVal, 1, 1, '1');

 /*更新原始表中的数据*/
 UPDATE P
 SET P.Sumu = @RetVal
 FROM PlanContact_F1_R AS P
 INNER JOIN #TempResult AS T ON T.ID = P.ID 
 WHERE T.RowKey = @RowCount;

 SET @RowCount += 1;

END

/*删除临时表*/
DROP TABLE #TempResult;

标签:--,改查,表处理,字段,表名,TABLE,NULL,ALTER,sever
From: https://www.cnblogs.com/sumu80/p/17970662

相关文章

  • SpringBoot中整合MybatisPlus快速实现Mysql增删改查和条件构造器
    场景Mybatis-Plus(简称MP)是一个Mybatis的增强工具,只是在Mybatis的基础上做了增强却不做改变,MyBatis-Plus支持所有Mybatis原生的特性,所以引入Mybatis-Plus不会对现有的Mybatis构架产生任何影响。MyBatis增强工具包,简化CRUD操作。启动加载XML配置时注入单表SQL操作,为简......
  • Go+Gin+GOrm+MySql实现基础的增删改查
    一、概述本节使用Gin+GOrm+MySql实现基础的增删改查。主要是做一下记录防止后面忘记了可以翻看博客查看主要有两个.go文件1.main.go用于注册gin路由及初始化gorm操作数据库2.Result.go用于封装服务端返回给客户端的响应体二、代码示例1.main.go//go_......
  • SpringBoot中整合ElasticSearch实现增删改查等操作
    场景SpringBoot中整合ElasticSearch快速入门以及踩坑记录:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/135599698在上面进行集成的基础上,实现对ES数据的增删改查等操作。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现1、ElastciSearch的对象映射h......
  • 【笔记-MySql】表处理语句
    【笔记-MySql】表处理语句查看表SHOWTABLES;查看列SHOWCOLUMNSFROM<tableName>;查看约束SHOWINDEXESFROM<tableName>;创建表CREATE[TEMPORARY]TABLE<tableName>(字段描述语句[,...][表级约束]);修改表名RENAMETABLE<oldtableName>TO<tabl......
  • Go+Gin+xorm+MySql实现增删改查
    一、概述承接上一篇(ps:原生增删改查),本篇使用xorm实现增删改查。之所以要使用xrom是因为xrom可以极大的缩小操作数据库的成本。使用rom之前需要导入响应的包gogetgithub.com/go-xorm/xorm#安装xormgogetxorm.io/coregoget-ugithub.com/go-sql-driver/mys......
  • Go Gin+MySQL实现增删改查
    一、概述使用Gin框架+MySQL数据库实现增删改查(原生sql)实现步骤:1.导入Gin框架goget-ugithub.com/gin-gonic/gin2.引入MySQL驱动goget-ugithub.com/go-sql-driver/mysql3.注册Gin路由//注册用户路由funcRegisterUser(){......
  • 前端歌谣-第柒拾叁课-node操作mongodb实现增删改查(图片上传功能)
    前言大家好我是歌谣今天继续给大家带来node操作mongodb实现增删改查实现上传功能环境准备后端mongodb数据库+node前端ejs模板安装处理文件的依赖npmimulter后端启动.\mongod--dbpath.\data\db后台运行连接数据库清空数据前端部分前端目录controller层constUserService=r......
  • 前端歌谣-第陆拾玖课-MongoDB之node操作实现数据库增删改查
    前言大家好我是歌谣今天给大家带来的是MongoDB关于node操作数据库的讲解依赖配置需要安装express-genetator脚手架创建项目配置文件{"name":"myapp","version":"0.0.0","private":true,"scripts":{"start":"node./bin/w......
  • 数据处理动作——增删改查输入输出-map-flattern-agg-concat-merge
    numpypytorchmindsporeimportnumpyasnpdefzscore(x,axis=None):xmean=x.mean(axis=axis,keepdims=True) xstd=np.std(x,axis=axis,keepdims=True) zscore=(x-xmean)/xstd returnzscore###说明指定如何加,不同软件和框架有默认或者隐式处理 维度-......
  • 软件构造实验三——调用JFinal框架实现增删改查的学生信息管理系统
    项目结构具体代码_JFinalDemoGenerator.javapackageorg.example.common.model;importcom.jfinal.plugin.activerecord.dialect.MysqlDialect;importcom.jfinal.plugin.activerecord.generator.Generator;importcom.jfinal.plugin.activerecord.generator.TypeMapping......