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作业失败:无法确定所有者是否有服务器访问权限的解决方法
Jun 30 SQL Server
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
Jul 07 SQL Server
SQL中的三种去重方法小结
Nov 01 SQL Server
SQL Server内存机制浅探
Apr 06 SQL Server
SQL Server的存储过程与触发器以及系统函数和自定义函数
Apr 10 SQL Server
SQL Server数据库查询出现阻塞之性能调优
Apr 10 SQL Server
SQL Server Agent 服务无法启动
Apr 20 SQL Server
SQL Server 忘记密码以及重新添加新账号
Apr 26 SQL Server
SQL Server中的游标介绍
May 20 SQL Server
SQL Server中使用表变量和临时表
May 20 SQL Server
SQL Server使用T-SQL语句批处理
May 20 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
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
PHP实现无限极分类图文教程
2014/11/25 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
Python发送邮件实现基础解析
2020/08/14 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
护理专业自我鉴定
2014/01/30 职场文书
小学生家长评语大全
2014/02/10 职场文书
国培教师自我鉴定
2014/02/12 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
团队精神的演讲稿
2014/05/14 职场文书
2014财产信托协议书范本
2014/11/18 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android