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 相关文章推荐
SQL Server数据定义——模式与基本表操作
Apr 05 SQL Server
SQL Server基本使用和简单的CRUD操作
Apr 05 SQL Server
【HBU】数据库第四周 单表查询
Apr 05 SQL Server
sql中mod()函数取余数的用法
May 29 SQL Server
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
Jun 30 SQL Server
SQL语句中JOIN的用法场景分析
Jul 25 SQL Server
MySQL 中如何归档数据的实现方法
Mar 16 SQL Server
详解在SQLPlus中实现上下键翻查历史命令的功能
Mar 18 SQL Server
sql server偶发出现死锁的解决方法
Apr 10 SQL Server
Sql Server 行数据的某列值想作为字段列显示的方法
Apr 20 SQL Server
SQL使用复合索引实现数据库查询的优化
May 25 SQL Server
SQL Server携程核心系统无感迁移到MySQL实战
Jun 01 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
PHP出错界面
2006/10/09 PHP
一个简单的php实现的MySQL数据浏览器
2007/03/11 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
php创建多级目录的方法
2015/03/24 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
django中ImageField的使用详解
2020/12/21 Python
十八大感想感言
2014/02/10 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
react中的DOM操作实现
2021/06/30 Javascript
详解Vue的列表渲染
2021/11/20 Vue.js