常用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;ENDCOMMIT 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 mastercreate 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'))

转载于:https://www.cnblogs.com/jaday/p/5395938.html

sql 操作常用操作语句 新增、修改字段等相关推荐

  1. C语言字符串、文件操作常用操作函数,

    C语言字符串常用操作函数 C语言字符串.文件操作常用操作函数 字符串输出 - puts() 字符串输入 - gets() 字符串比较 - strcmp() 字符串复制 - strcpy() 字符串连接 ...

  2. SQL Server 常用更新语句,用B表数据作为条件或数据源更新A表数据

    SQL Server 常用更新语句,用B表数据作为条件或数据源更新A表数据 示例:用B表姓名覆盖A表姓名 假设: A表数据 Id,Name 1,张三 B表数据 Id,Name 1,李四 用下面这个语句 ...

  3. 用SQL语句增加修改字段

    一.修改字段默认值 alter table 表名 drop constraint 约束名字   ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约 ...

  4. MySQL数据操作语言——插入语句、修改语句和删除语句

    数据操作语言 (DML:Data Manipulate Language )包括: 插入:insert 修改:update 删除:delete 一.插入语句 方式一:(经典插入) 1. 语法:     ...

  5. mysql 修改字段值语句_mysql修改字段语句

    --------------------------------------------------------- Ta 只分享的内容开始 ------------------------------ ...

  6. Postgres数据库增加表字段、注解语句、修改字段长度、修改字段名称

    -- 新增字段 alter table xxx add column created_by varchar(42) DEFAULT null alter table xxx add column cr ...

  7. MS SQL Server 常用操作

    以下为常用: --发邮件应该很常用吧 exec msdb.dbo.sp_send_dbmail@profile_name = @mail_profile, --邮件配置主档,通过数据库邮件配置向导生成 ...

  8. sql语句批量修改字段

    一. 根据条件去掉指定记录的前2个字符 update 表名 set 字段名=REPLACE(字段名,字段名,SUBSTR(字段名,1,2)) where 条件: 简单例子: update test s ...

  9. tp6 SQL调试常用操作

    1.fetchSql(),数据表和DB类都能调用,案例如下: public function index(){$res=Db::name('test2')->fetchSql()->fin ...

  10. sql 2008常用语法语句收集

    EXEC sp_dropuser 'test' : 从当前数据库删除用户 test EXEC sp_droplogin 'test' : 从 SQL Server 中删除登录 test select ...

最新文章

  1. WebWorker与WebSocket实现前端消息总线
  2. PS修改过图片上传服务器,富文本编辑器图片上传base64存数据库改为服务器图片路径...
  3. linux怎样标识空设备,Linux系统命令------Ubuntu下解决adb设备列表为空
  4. Redis之压缩链表ziplist
  5. 使用sphinx为python注释生成docAPI文档
  6. kibana数据可视化
  7. 水星路由器DNS服务器未响应,水星路由器进不去设置怎么办
  8. smartSVN 分支与合并
  9. 用c++自制词法分析器_编译原理笔记 02 词法分析
  10. 如何使用Visio 2007制作流程图
  11. dpp-enrollee配网
  12. 戴尔服务器r420系统安装系统,DELLR420+R720服务器raid+驱动安装教程.docx
  13. 引用变量和对象--作为初学者的混淆
  14. PHP常用字符串函数32个(个人总结)
  15. 遥控车钥匙算法之KeeLoq
  16. EFR32芯科zigbee学习文档资源总结
  17. 记一次修改DiyBox的经历(openwrt固件解包与打包)
  18. keil 调试 操作系统_调试操作系统:内存分配的经验教训
  19. ‘step’的调用中是否存在不正确的参数数据类型或缺少参数
  20. Mac下安装多个版本的JDK并随意切换

热门文章

  1. LINUX下Android NDK下载并配置
  2. 泰山游记:为何爬山后大腿前部很酸?
  3. C++ 类的隐式转换之基本数据类型
  4. presto读取oracle,Presto数据接入方式
  5. c语言字母等腰三角形边框,用C语言编写一个四行*等腰三角形
  6. alter在mysql_MySQL的alter的使用
  7. YACC (Yet Another Compiler Compiler)
  8. VMware的配置问题集锦(更新中......)
  9. 译:理解 Win32 OutputDebugString
  10. Quartz.net 任务调度