sql 操作常用操作语句 新增、修改字段等
常用sql
--查询数据库连接数
SELECT * FROM master.dbo.sysprocesses WHERE dbid IN
(
SELECT dbid FROM master.dbo.sysdatabases
WHERE NAME='数据库表名'
) --查询锁表
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName
from sys.dm_tran_locks where resource_type='OBJECT'
ORDER BY request_session_id --杀掉进程
declare @spid int
Set @spid = 182 --锁表进程
declare @sql varchar(1000)
set @sql='kill '+cast(@spid as varchar)
exec(@sql)
--远程查询
--开户外围 exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure -------------------------------
select * from openrowset( 'SQLOLEDB', '服务器ip'; '数据库登录账号'; '数据库登录密码',数据库名.dbo.表名)
------------------------------- --关闭外围 exec sp_configure 'show advanced options',0
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
--压缩备份
Declare @strDataBaseName varchar(50)
Declare @FullFileName varchar(50)
Set @strDataBaseName='data'
Set @FullFileName='d:\db_backup\data20170222.bak'
BACKUP DATABASE @strDataBaseName TO DISK = @FullFileName WITH INIT, STATS = 20
--sql 事务
BEGIN TRAN 事物名 IF(@@ERROR<>0)BEGIN ROLLBACK TRAN 事物名;RETURN;END COMMIT TRAN 事物名 --数据库清缓存
DBCC DROPCLEANBUFFERS --忽略自增列 按照sql语句的id新增
SET IDENTITY_INSERT [dbo].[EduMenuFunction] ON
--插入语句
SET IDENTITY_INSERT [dbo].[EduMenuFunction] OFF --修改语句联表修改
UPDATE S_GB_StudentBasicInfo
SET BH =ci.BH
from S_GB_StudentBasicInfo sbi WITH(NOLOCK),C_GB_ClassInfo ci WITH(NOLOCK)
where sbi.BJID=CONVERT(nvarchar(20),ci.ID) UPDATE A
SET A.c2 =B.c3
from A inner join B on A.c1=B.c1 --创建索引
CREATE INDEX DataReportIndex
ON S_GB_StudentBasicInfo_DataReport(SFZJH (ASC), XB (ASC), CSRQ (ASC), DataYear (ASC), STATUS (ASC)) --修改字段默认值
alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束
alter table 表名 add constraint 约束名字 DEFAULT 默认值 for 字段名称 -------说明:添加一个表的字段的约束并指定默认值 --修改字段名:
alter table 表名 rename column A to B --修改字段类型:
alter table 表名 alter column UnitPrice decimal(18, 4) not null --增加字段:
alter table 表名 ADD 字段 类型 NOT NULL Default 0 --添加字段 [CardRecord][Birthday]
IF NOT EXISTS( SELECT * from syscolumns where [id]=object_id('CardRecord') AND
[name]='Birthday' )
BEGIN
Alter Table CardRecord Add Birthday DATETIME NOT NULL DEFAULT('1900-01-01 00:00:00') ;
EXEC sp_addextendedproperty 'MS_Description', '出生日期', 'user', dbo, 'table',CardRecord, 'column', Birthday;
END --清除表数据,自增列从1开始
truncate table 表名; --查询所有的子节点
with cte as
(
select * from Base_Company where Id = 'E7F5395E-6D11-4490-B3AD-513574268CF6' --查询节点
union all
select a.*
from Base_Company a join cte b on a.ParentId = b.id
where a.id is not null
)
select * from cte --创建数据库
USE master create database AdayMS
on primary -- 默认就属于primary文件组,可省略
(
/*--数据文件的具体描述--*/
name='AdayMS_data', -- 主数据文件的逻辑名称
filename='E:\数据库\jaday\AdayMS\AdayMS_data.mdf', -- 主数据文件的物理名称
size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15%--主数据文件的增长率
)
log on
(
/*--日志文件的具体描述,各参数含义同上--*/
name='AdayMS_log',
filename='E:\数据库\jaday\AdayMS\AdayMS_log.ldf',
size=2mb,
filegrowth=1mb
) --根据时间筛选
datediff(dd,时间字段,当前时间)>=0 --获取新增数据的标识列
insert语句;select @@IDENTITY --获取数据库表和视图中的所有字段
SELECT
列序号 = A.COLORDER,
列名 = A.NAME,
--主键 = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE= 'PK ' AND PARENT_OBJ=A.ID AND NAME IN (
--SELECT NAME FROM SYSINDEXES WHERE INDID IN(
--SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN '√ ' ELSE ' ' END,
类型 = B.NAME,
--允许空 = CASE WHEN A.ISNULLABLE=1 THEN '√ 'ELSE ' ' END,
列说明 = ISNULL(G.[VALUE], ' ')
FROM SYSCOLUMNS A
LEFT JOIN SYSTYPES B ON A.XUSERTYPE=B.XUSERTYPE
INNER JOIN SYSOBJECTS D ON A.ID=D.ID AND D.XTYPE= 'U ' AND D.NAME <> 'DTPROPERTIES '
LEFT JOIN SYSCOMMENTS E ON A.CDEFAULT=E.ID
LEFT JOIN sys.extended_properties G ON A.ID=G.major_id AND A.COLID=G.minor_id
LEFT JOIN sys.extended_properties F ON D.ID=F.major_id AND F.minor_id=0
WHERE (D.name='@TableName' )
ORDER BY
A.ID,A.COLORDER
--视图
SELECT
列序号 = A.COLORDER,
列名 = A.NAME,
--主键 = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE= 'PK ' AND PARENT_OBJ=A.ID AND NAME IN (
--SELECT NAME FROM SYSINDEXES WHERE INDID IN(
--SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN '√ ' ELSE ' ' END,
类型 = B.NAME,
--允许空 = CASE WHEN A.ISNULLABLE=1 THEN '√ 'ELSE ' ' END,
列说明 = ISNULL(G.[VALUE], ' ')
FROM SYSCOLUMNS A
LEFT JOIN SYSTYPES B ON A.XUSERTYPE=B.XUSERTYPE
INNER JOIN SYSOBJECTS D ON A.ID=D.ID AND d.xtype='V' AND D.NAME <> 'dtproperties '
LEFT JOIN SYSCOMMENTS E ON A.CDEFAULT=E.ID
LEFT JOIN sys.extended_properties G ON A.ID=G.major_id AND A.COLID=G.minor_id
LEFT JOIN sys.extended_properties F ON D.ID=F.major_id AND F.minor_id=0
WHERE (D.name='@ViewName' )
GROUP BY
A.COLORDER
,A.NAME
,B.NAME
,ISNULL(G.[VALUE], ' ')
,A.ID
ORDER BY
A.ID,A.COLORDER --触发器
ALTER TRIGGER [TRG_QBItem]
---------项触发器-------------------
ON [dbo].[QBItem]
FOR delete
AS
delete from QBOptions where ItemId in (select ItemId from deleted) --计算执行sql语句的时间
--首先 在各个sql 执行语句前加:
declare @time datetime
set @time=getdate()
--然后在sql执行语句后加上:
select [语句执行花费时间(毫秒)]=datediff(ms,@time,getdate())
1,只是插入简单的有限行数据时用:
insert 要插入的表名(列名1,列名2,....)
select '列名1需要的数据','列名2需要的数据',... union
select '列名1需要的数据','列名2需要的数据',... union
select '列名1需要的数据','列名2需要的数据',...
... ...
例如:
insert into MyTable2
(学号,姓名,性别,出生日期,学院编码,成绩)
select '05001001','张三玉','女','1987-10-5','01',88 union
select '05001002','李斯','男','1986-4-18','01',76 union
select '04013029','王武','男','1986-5-18','03',94 union
select '04013030','王小琳','女','1985-11-6','03',37 union
select '04013031','赵六方','男','1987-12-28','03',55 union
select '03115002','欧阳陈其','男','1986-1-1','02',92
2,当要从一个表中取出数据插入到该新表(两个表的表结构不同)时用:
insert 新表名(列名1,列名2,....)
select 旧表的列名1 as 列名1,旧表的列名2 as 列名2 from 旧表表名
3,只是复制表结构时用:
select * into table2(新表) from table1(原表) where 1<>1
4,复制表结构的同时并把数据复制时用:
select * into table2(新表) from table1(原表)
远程sql插入
//先打开远程连接
exec sp_configure 'show advanced options',1
go
reconfigure
go
exec sp_configure 'Ad Hoc Distributed Queries',1
go
reconfigure
插入语句
SELECT * INTO 新表 FROM
opendatasource('SQLOLEDB','server=.;
uid=sa;pwd=;database=数据库名;')
.数据库名.旧表
--建立服务器间的连接 参数说明: @server为服务器写个名称以便在下面使用;SQLOLEDB无需改动;@datasrc是远程数据库所在的IP地址
EXEC sp_addlinkedserver @server='ServerName',@provider='SQLOLEDB',@srvproduct='',@datasrc='192.168.85.251'
--登陆服务器 参数说明:此处的@rmtsrvname取名要与上面的@server一样;@rmtuser登陆服务器的用户名;@rmtpassword登陆服务器的密码
EXEC dbo.sp_addlinkedsrvlogin @rmtsrvname = N'ServerName',@useself = N'False',@locallogin = NULL,@rmtuser = N'sa',@rmtpassword = N'123'
/*-----------简写方式------------------EXEC dbo.sp_addlinkedserver 'ServerName','','SQLOLEDB','192.168.85.251'EXEC
sp_addlinkedsrvlogin 'ServerName','false',NULL,'sa','123'------------------------------------*/
Go/*------------数据操作区----------------*/select * from [ServerName].[库名称].[dbo].[表名称]/*--------------End---------------------*/GO
--关闭服务器连接
EXEC sp_droplinkedsrvlogin 'ServerName' , NULL
EXEC sp_dropserver 'ServerName'
--删除表字段和约束
declare @name varchar(50)
select @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault
where a.id = object_id('ES_honor')
and a.name ='StudentId'
exec('alter table ES_honor drop constraint ' + @name)
ALTER TABLE dbo.ES_Honor
DROP COLUMN StudentId
1)禁止所有表约束的SQL
select 'alter table '+name+' nocheck constraint all' from sysobjects where type='U'
2)删除所有表数据的SQL
select 'TRUNCATE TABLE '+name from sysobjects where type='U'
3)恢复所有表约束的SQL
select 'alter table '+name+' check constraint all' from sysobjects where type='U'
4)删除某字段的约束
declare @name varchar(100)
--DF为约束名称前缀
select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('表名') and b.id=a.cdefault and a.name='字段名' and b.name like 'DF%'
--删除约束
alter table 表名 drop constraint @name
--为字段添加新默认值和约束
ALTER TABLE 表名 ADD CONSTRAINT @name DEFAULT (0) FOR [字段名]
--删除约束
ALTER TABLE tablename
Drop CONSTRAINT 约束名
--修改表中已经存在的列的属性(不包括约束,但可以为主键或递增或唯一)
ALTER TABLE tablename
alter column 列名 int not null
--添加列的约束
ALTER TABLE tablename
ADD CONSTRAINT DF_tablename_列名 DEFAULT(0) FOR 列名
--添加范围约束
alter table tablename add check(性别 in ('M','F'))
sql 操作常用操作语句 新增、修改字段等的更多相关文章
- sql/plus 常用操作
一.sys用户和system用户Oracle安装会自动的生成sys用户和system用户(1).sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户 ...
- 关于SQL的常用操作(增、删、改、查)
关于SQL的常见操作主要是增.删.改.查. 1.增,顾名思义就是新增数据(insert into).该语句用于向表中插入新纪录.insert into有两种用法. (1).无需指定要插入数据的列名,只 ...
- Java代码操作properties文件(读取,新增/修改,删除)
项目中需要用到操作properties文件中的数据,记录一下 package com.bonc.savepic.save; import java.io.FileNotFoundException; ...
- SQL SERVER数据库的表中修改字段的数据类型后,不能保存
在数据库里面建了一个表,可是由于对SQL SERVER的建表功能不熟悉,不知道把主键设成什么是好,就先设置了个TEXT类型,可是后来朋友们告诉我说,TEXT类型容易让数据文件变得很大,还 是改成一 ...
- Sql Server 常用操作
--DDL触发器CREATE TRIGGER [TR_create_drop_alter_Table] ON DATABASE FOR CREATE_TABLE,DROP_table,ALTER_ ...
- Sql Server 常用操作2
FOR XML PATH应用 stuID学生编号,sName代表学生姓名,hobby列存学生的爱好! SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as ho ...
- 【sql server常用操作{增删改查}】
use DB_x go drop database DB_y create database DB_y --创建数据库 on primary --指定主数据文件 ( name= ...
- [mysql]SQL语句-新增/修改 创建时间 更新时间
SQL关键词 要注意大小写 已建表,之前没有创建时间列, 现新增1列创建时间,并设置默认值为当前时间 --添加CreateTime 设置默认时间 CURRENT_TIMESTAMP ALTER T ...
- SQL Server 常用操作XML
--修改FunctionNo节点值,@OperateFunctionNo为参数 set @DataXml.modify('replace value of (/CrudData/FunctionNo/ ...
随机推荐
- c++输入一组整型数据 不知道长度 回车键结束 并将其存入数组当中
#include "stdafx.h"#include<iostream>using namespace std;int main(){ int a[999];int ...
- ios上position:fixed失效问题
手机端上的猫腻真是多啊~~~ 此起彼伏! 最近又遇到了 固定定位的底部导航在ios上被弹出去 此时内心1w+个草泥马奔过~~~~~~~~ 直接上解决方案: <div class="ma ...
- Redis数据类型介绍
Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...
- Python开发【前端】:DOM
DOM(文档对象模型(Document Object Model)) 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.在网页 ...
- 关于iOS和android自定义包的名字
自定义包名的使用,android的包名和ios的包名都是你的自定义包名!如下以新浪微博SDK自定义包名示例:(官方没的,自己踩过坑,方便后来人吧) 相关技术文档:http://www.apicloud ...
- Android Scroller简单用法
Android里Scroller类是为了实现View平滑滚动的一个Helper类.通常在自定义的View时使用,在View中定义一个私有成员mScroller = new Scroller(conte ...
- Issue 7: 网络in action
网络运维基础 基础参数 配置:IP,子网掩码,网关,dns服务器,dhcp服务器 基础应用 在网关设置上搭建VPN组网 改host文件 单台主机原则上只能配置一个网关 协议 协议是全球都遵守的一套编码 ...
- Cent0S 升级Python会带来的问题
CentOS是linux的几个Distrubution中比较容易让初学者拿来学习的一个版本,以下记录一下在学习过程中遇到的一些问题以及解决方法: 1.在WIN7下,我最初尝试安装7.0版本的,后来一直 ...
- 简介 jCanvas:当 jQuery遇上HTML5 Canvas
https://github.com/caleb531/jcanvas HTML5 可以直接在你的网页中使用 <canvas> 元素及其相关的 JavaScript API绘制的图形. 在 ...
- 九十分钟极速入门Linux——Linux Guide for Developments 学习笔记
系统信息:CentOS 64位. 一张图了解命令提示符和命令行 一些实用小命令 mkdir(make directory,创建目录).ls(list,列出当前目录下的内容).rm(remove,删除文 ...