11-常用SQL总结

1.设置表的列不能为null
alter table run.dbo.T1 alter column Col1 int not null

2.给表添加主键
alter table run.dbo.T1 add constraint pk_name primary key (Col1)

3.查看表中的列是否有重复数据
select count(*) as cnt,Col1 from run.dbo.T2 group by Col1 having count(*) >1

4.创建联合主键
create table testprim (id int not null,custid nvarchar(20) not null,name nvarchar(10),age int)

alter table student drop constraint pk_name   --删除主键

--id和custid组合起来的主键,主键的名称是pk_name
alter table run.dbo.testprim add constraint pk_testprim primary key (id,custid)

5.将数据库设置为单用户模式

alter database run set single_user with rollback immediate

6.将数据库设置为多用户模式
alter database run set multi_user with rollback immediate

7.检查数据库的一致性
dbcc checkdb('run')

8.为表添加一个列
alter table run.dbo.T2 add Col3 nvarchar(10) null

9.清除缓存
dbcc dropcleanbuffers

10.查看数据库的状态

use test
select databasepropertyex('test','Status') as 'test数据库状态'

11.重新编译存储过程

exec sp_recompile  'dbo.Proc_F021A'

12.查看日志文件的大小和使用率
dbcc SQLPERF(LOGSPACE)

select DB_NAME(database_id) as dbname,total_log_size_in_bytes/1024/1024 as total_log from sys.dm_db_log_space_usage

13.查看数据库的数据文件和日志文件总的使用情况和未分配情况
Exec sp_spaceused

 14.查看所有的用户

select * from sysusers

15.查看所有的登录名

select * from syslogins

16.查询表的行数(行数大的时候,不能做count的时候使用,使用的时候要use对应的库,不能使用master)

select * from  sys.partitions where object_id=object_id('test.dbo.T1')

17.设置事务的隔离级别为提交读
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

18.查看安装的数据库引擎,实例的SQLServer版本
SELECT SERVERPROPERTY('EngineEdition')

 

 注:

  1--- Personal或Destop Engine;   2---Standard;3----Enterprise     

19..查看SQLServer的版本号
SELECT SERVERPROPERTY('ProductVersion')

20.查看排序规则
select serverproperty('Collation')

21.修改表的字段属性

alter table person  alter column Col2 varchar(500) null;

22.添加唯一约束

alter table student add constraint unique_classname unique(classname)
alter table student add constraint unique_classsex unique(studytime,sex)

 

 alter table student drop constraint unique_classsex  --删除唯一约束

23、创建主键(对应的索引是非聚集索引)

alter table student add constraint pk_name primary key nonclustered(id,name)

 

 24、查看当前库下没有主键的表

select t.name from YGT.sys.tables t
inner join YGT.sys.schemas s
on t.schema_id=s.schema_id 
where s.name='dbo' and t.type='U' and t.is_ms_shipped<>1
and t.name not in (
select  t.name as tname  from  sysobjects pk
inner join sysobjects t
on t.id = pk.parent_obj
where pk.xtype='PK'
)

 25、修改表名

--student是旧表名,student1是新表名
exec sp_rename 'student','student1'

 

posted @ 2019-09-25 10:16  佳蓝雨  阅读(312)  评论(0编辑  收藏  举报