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-3课程——SQL Server查询【2】
Apr 05 SQL Server
SQLServer2019 数据库的基本使用之图形化界面操作的实现
Apr 08 SQL Server
SQLServer2008提示评估期已过解决方案
Apr 12 SQL Server
sqlserver2017共享功能目录路径不可改的解决方法
Apr 16 SQL Server
sql查询结果列拼接成逗号分隔的字符串方法
May 25 SQL Server
SqlServer数据库远程连接案例教程
Jul 15 SQL Server
利用 SQL Server 过滤索引提高查询语句的性能分析
Jul 15 SQL Server
SQL CASE 表达式的具体使用
Mar 21 SQL Server
SQL Server表分区降低运维和维护成本
Apr 08 SQL Server
SQL SERVER中的流程控制语句
May 25 SQL Server
SQL中的连接查询详解
Jun 21 SQL Server
在SQL Server中使用 Try Catch 处理异常的示例详解
Jul 15 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实现mysql同步的实现方法
2009/10/21 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
php实现的农历算法实例
2015/08/11 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
Jquery iframe内部出滚动条
2010/02/11 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
python encode和decode的妙用
2009/09/02 Python
python实现划词翻译
2020/04/23 Python
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Python多线程实现同步的四种方式
2017/05/02 Python
详解Python 正则表达式模块
2018/11/05 Python
学习Django知识点分享
2019/09/11 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
python多进程使用函数封装实例
2020/05/02 Python
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
医院后勤自我鉴定
2013/10/13 职场文书
竞聘演讲稿范文
2014/01/12 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
MySQL 数据表操作
2022/05/04 MySQL