MSSQL基本语法操作


Posted in SQL Server onApril 11, 2022

刷新本地缓存

Ctrl+Shift+R

查询

select *from [table]

修改

1、普通更新

UPDATE [table] set [字段]=[values]

2、关联表更新

UPDATE A SET A1 = B1, A2 = B2, A3 = B3 FROM A, B WHERE A.ID = B.ID

删除(数据)

delete [table]

删除(表)

drop [table]

条件查询

select *from [table] where [字段]=[values]

事务

1 开始事务: begin transaction

2 提交事务:commit transaction

3 回滚事务: rollback transaction

4 结束事务: 提交或回滚事务都将结束事务

/*--开始事务--*/
begin transaction
declare @errorSum int    --定义变量,用于累计事务执行过程中的错误
/*--转帐--*/
update bank set currentMoney=currentMoney-800 where customerName='张三'
set @errorSum=@errorSum+@@error    --累计是否有错误
update bank set currentMoney=currentMoney+800 where customerName='李四'
set @errorSum=@errorSum+@@error --累计是否有错误

print '查看转帐事务过程中的余额'
select * from bank

/*--根据是否有错误,确定事务是提交还是回滚--*/
if @errorSum>0
    begin
        print '交易失败,回滚事务.'
        rollback transaction
    end
else
    begin
        print '交易成功,提交事务,写入硬盘,永久保存!'
        /*--提交并且结束事务--*/
        commit transaction
    end
go

print '查看转帐后的余额'
select * from bank
go

查询所有表名

select * from sys.tables

查询所有表包含的字段名

select * from sys.columns

查询所有字段说明

select * from sys.extended_properties

根据表查询所含字段说明

SELECT t.[name] AS 表名,c.[name] AS 字段名,cast(ep.[value]
as varchar(100)) AS [字段说明]
FROM sys.tables AS t
INNER JOIN sys.columns AS c 
ON t.object_id = c.object_id
LEFT JOIN sys.extended_properties AS ep
ON ep.major_id = c.object_id AND ep.minor_id = c.column_id WHERE ep.class =1
AND t.name='UTB_GBNT_PROJ_INFO'--------表名

创建视图

create view ViewName
(字段1,字段2)
as
(
    select 字段1, 字段2 
    from [table] 
)

数据字典

SELECT t.FieldExp 名称,t.ColumnName 代码,

case t.FieldDataType 
when 'bigint' then t.FieldDataType
when 'int' then t.FieldDataType
when 'datetime' then t.FieldDataType
when 'numeric' then t.FieldDataType
when 'nvarchar' then (cast(t.FieldDataType as varchar(100))+'('+cast(t.Fieldlength as varchar(100))+')')
when 'decimal' then (cast(t.FieldDataType as varchar(100))+'('+cast(t.Fieldlength as varchar(100))+','+cast(t.Scale as varchar(100))+')')
end as 数据类型

,t.Fieldlength 长度,t.Scale 精确度

,case t.FieldNullable
when 0 then '不为空'
when 1 then '' end as 说明

from (select 
colorder=C.column_id, 
FieldExp=ISNULL(PFD.[value],N''), 
ColumnName=C.name, 
FieldDataType=T.name, 
Fieldlength=COLUMNPROPERTY(c.object_id ,c.name ,'PRECISION'), 
Scale=C.scale,
FieldNullable=C.is_nullable
--FieldDefVal=D.definition
FROM sys.columns C 
INNER JOIN sys.objects O 
ON C.[object_id]=O.[object_id] 
AND (O.type='U' or O.type='V') 
AND O.is_ms_shipped=0 
INNER JOIN sys.types T 
ON C.user_type_id=T.user_type_id 
LEFT JOIN sys.default_constraints D 
ON C.[object_id]=D.parent_object_id 
AND C.column_id=D.parent_column_id 
AND C.default_object_id=D.[object_id] 
LEFT JOIN sys.extended_properties PFD 
ON PFD.class=1 
AND C.[object_id]=PFD.major_id 
AND C.column_id=PFD.minor_id 
LEFT JOIN sys.extended_properties PTB 
ON PTB.class=1 
AND PTB.minor_id=0 
AND C.[object_id]=PTB.major_id 
LEFT JOIN 
( 
SELECT 
IDXC.[object_id], 
IDXC.column_id, 
Sort=CASE INDEXKEY_PROPERTY(IDXC.[object_id],IDXC.index_id,IDXC.index_column_id,'IsDescending')
WHEN 1 THEN 'DESC' WHEN 0 THEN 'ASC' ELSE '' END,  
PrimaryKey=CASE WHEN IDX.is_primary_key=1 THEN N'√'ELSE N'' END, 
IndexName=IDX.Name  
FROM sys.indexes IDX  
INNER JOIN sys.index_columns IDXC  
ON IDX.[object_id]=IDXC.[object_id]  
AND IDX.index_id=IDXC.index_id  
LEFT JOIN sys.key_constraints KC  
ON IDX.[object_id]=KC.[parent_object_id]  
AND IDX.index_id=KC.unique_index_id  
INNER JOIN  
(  
SELECT [object_id], Column_id, index_id=MIN(index_id)  
FROM sys.index_columns  
GROUP BY [object_id], Column_id  
) IDXCUQ  
ON IDXC.[object_id]=IDXCUQ.[object_id]  
AND IDXC.Column_id=IDXCUQ.Column_id  
AND IDXC.index_id=IDXCUQ.index_id  
) IDX  
ON C.[object_id]=IDX.[object_id]  
AND C.column_id=IDX.column_id  
WHERE O.name='--tablename--')as t  ORDER BY colorder,ColumnName
SELECT  
表名=case when a.colorder=1 then d.name else '' end, 
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号=a.colorder, 
字段名=a.name, 
标识=case when COLUMNPROPERTY(a.id,a.name,'IsIdentity')=1 then '√'else '' end, 
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' 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, 
占用字节数=a.length, 
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'), 
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0), 
允许空=case when a.isnullable=1 then '√'else '' end, 
默认值=isnull(e.text,''), 
字段说明=isnull(g.[value],'') 
FROM syscolumns a 
left join systypes b on a.xtype=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='要查询的表' --如果只查询指定表,加上此条件   
order by a.id,a.colorder
SQL Server 相关文章推荐
2021-4-5课程——SQL Server查询【3】
Apr 05 SQL Server
SQLServer2019 数据库的基本使用之图形化界面操作的实现
Apr 08 SQL Server
如何有效防止sql注入的方法
May 25 SQL Server
sql字段解析器的实现示例
Jun 23 SQL Server
SQL Server数据库基本概念、组成、常用对象与约束
Mar 20 SQL Server
SQLServer RANK() 排名函数的使用
Mar 23 SQL Server
SQL Server使用导出向导功能
Apr 08 SQL Server
如何使用SQL Server语句创建表
Apr 12 SQL Server
SQL Server 中的事务介绍
May 20 SQL Server
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
May 25 SQL Server
SQL Server2019安装的详细步骤实战记录(亲测可用)
Jun 10 SQL Server
SQL Server数据库查询出现阻塞之性能调优
Apr 10 #SQL Server
sql server偶发出现死锁的解决方法
SQL Server的存储过程与触发器以及系统函数和自定义函数
Apr 10 #SQL Server
SQL Server表分区降低运维和维护成本
SQL Server使用导出向导功能
SQL Server内存机制浅探
sqlserver连接错误之SQL评估期已过的问题解决
You might like
PHP7新特性
2021/03/09 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
javascript闭包入门示例
2014/04/30 Javascript
jquery图片切换插件
2015/03/16 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
收集前端面试题之url、href、src
2018/03/22 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
初学Python函数的笔记整理
2015/04/07 Python
Python递归遍历列表及输出的实现方法
2015/05/19 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
python属于解释型语言么
2020/06/15 Python
python中K-means算法基础知识点
2021/01/25 Python
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
主治医师岗位职责
2013/12/10 职场文书
公司培训心得体会
2014/01/03 职场文书
少先队入队活动方案
2014/02/08 职场文书
关于元旦的广播稿
2014/02/16 职场文书
高中军训感言500字
2014/02/24 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
小学领导班子对照材料
2014/08/23 职场文书
交通事故和解协议书
2014/09/25 职场文书
高三英语复习计划
2015/01/19 职场文书
毕业设计致谢语
2015/05/14 职场文书
拥有这5个特征人,“命”都不会太差
2019/08/16 职场文书
什么是Python装饰器?如何定义和使用?
2022/04/11 Python