sqlserver tips

方括号内的表示一个对象名(视图,存储过程,表 等)、列名;正常使用时,加不加一样,但是如果对象名是保留字的话,比如cascade,就必须加;不过建议不用保留字作为对象名

if object_id(‘[huang]‘) is not null drop table [huang]
go
create table [huang]([客户ID] int,[来源] nvarchar(40),[采集时间] datetime)
insert [huang]
select 1111,‘赶集d‘,‘2014-05-05‘ union all
select 1112,‘赶集d‘,‘2014-05-03‘ union all
select 1112,‘赶集‘,‘2014-05-03‘ union all
select 1111,‘赶集‘,‘2014-05-05‘ union all
select 1111,‘搜狐‘,‘2014-05-05‘ union all
select 1113,‘搜狐‘,‘2014-05-06‘
--------------开始查询--------------------------

select a.[客户ID],
stuff((select ‘,‘+[来源] from [huang] b
where b.[客户ID]=a.[客户ID]
for xml path(‘‘)),1,1,‘‘) ‘来源‘
from [huang] a
group by a.[客户ID]

SELECT hobby+‘,‘ FROM student  FOR XML PATH(‘‘)

sqlserver中文乱码,设置数据库属性 options collation Chinese_PRC_CI_AS

/******按照降序查找表中的行数 ******/
/******按照降序查找表大小,所占空间,行数 ******/
/******查找表信息,查询出来的列分别是表类型,表名,表描述,列名,列描述,类型名,最大长度,是不是递增,可否为空,是不是计算列,计算语法。 ******/
/****** 索引表信息,查询出来的列分别是,表名,索引名,是不是唯一索引,索引类型,列名,降序 ******/
/****** 查询关联表信息。t1.name as 表名,t2.name as 引用的表名。 列名,引用列名 ******/ 

/******按照降序查找表中的行数 ******/
SELECT   a.name, b.rows
FROM      sysobjects AS a INNER JOIN
                 sysindexes AS b ON a.id = b.id
WHERE   (a.type = ‘u‘) AND (b.indid IN (0, 1))
ORDER BY b.rows DESC
/******按照降序查找表中的行数 ******/

/******按照降序查找表大小,所占空间,行数 ******/
create table #Data(name varchar(100),row varchar(100),reserved varchar(100),data varchar(100),index_size varchar(100),unused varchar(100)) 

declare @name varchar(100)
declare cur cursor  for
    select name from sysobjects where xtype=‘u‘ order by name
open cur
fetch next from cur into @name
while @@fetch_status=0
begin
    insert into #data
    exec sp_spaceused   @name
    print @name 

    fetch next from cur into @name
end
close cur
deallocate cur 

create table #DataNew(name varchar(100),row int,reserved int,data int,index_size int,unused int) 

insert into #dataNew
select name,convert(int,row) as row,convert(int,replace(reserved,‘KB‘,‘‘)) as reserved,convert(int,replace(data,‘KB‘,‘‘)) as data,
convert(int,replace(index_size,‘KB‘,‘‘)) as index_size,convert(int,replace(unused,‘KB‘,‘‘)) as unused from #data  

select * from #dataNew order by data desc
/******按照降序查找表大小,所占空间,行数 ******/ 

/******查找表信息,查询出来的列分别是表类型,表名,表描述,列名,列描述,类型名,最大长度,是不是递增,可否为空,是不是计算列,计算语法。 ******/
  select
		tb.type,
		tb.name as TableName,
		p1.value as TableDescription,
		c.name as ColumnName,
		p2.value as ColumnDescription,
		tp.name as TypeName,
		c.max_length as MaxLength,
		c.is_identity as IsIdentity,
		c.is_nullable as Nullable,
		c.is_computed as IsComputed,
		cc.definition as Fomula,
		c.Precision,
		c.Scale,
		s.name as [Schema]
  from sys.columns c
  inner join sys.objects tb on c.object_id=tb.object_id
  inner join sys.types tp on c.system_type_id=tp.system_type_id  and c.user_type_id=tp.user_type_id
  left join sys.extended_properties p1 on p1.major_id=tb.object_id and p1.minor_id=0 and p1.name=‘MS_Description‘
  left join sys.extended_properties p2 on p2.major_id=tb.object_id and p2.minor_id=c.column_id and p2.name=‘MS_Description‘
  left join sys.computed_columns cc on cc.object_id=tb.object_id and cc.column_id=c.column_id
  left join sys.schemas s on tb.schema_id=s.schema_id where tb.type in (‘U‘,‘V‘)
/******查找表信息,查询出来的列分别是表类型,表名,表描述,列名,列描述,类型名,最大长度,是不是递增,可否为空,是不是计算列,计算语法。 ******/ 

/****** 索引表信息,查询出来的列分别是,表名,索引名,是不是唯一索引,索引类型,列名,降序 ******/
     select
			 tb.Name as TableName,
			 ix.name as IndexName,
			 ix.is_unique_constraint as IsUniqueConstraint,
			 ix.type_desc as IndexType,
			 ix.is_unique as IsUnique,ix.is_primary_key as IsPrimary,
			 c.name as ColumnName,
			 ic.is_descending_key as IsDescending,
			 s.name as [Schema]
	  from sys.indexes ix
	  inner join sys.index_columns ic on ix.object_id=ic.object_id  and ix.index_id=ic.index_id
	  inner join sys.columns c on ic.column_id=c.column_id and ic.object_id=c.object_id
	  inner join sys.tables tb on tb.object_id=ix.object_id
	  left join sys.schemas s on tb.schema_id=s.schema_id where ix.type!=0
/****** 索引表信息,查询出来的列分别是,表名,索引名,是不是唯一索引,索引类型,列名,降序 ******/ 

/****** 查询关联表信息。t1.name as 表名,t2.name as 引用的表名。 列名,引用列名 ******/
     select
		   sys.objects.name as AssociationName,
		   t1.name as TableName,
		   t2.name as ReferenceTableName,
		   c1.name as ColumnName,
		   c2.name as ReferenceColumnName
	  from sys.objects
	  inner join sys.foreign_key_columns c on sys.objects.object_id=c.constraint_object_id
	  inner join sys.tables t1 on t1.object_id=c.parent_object_id
	  inner join sys.tables t2 on t2.object_id=c.referenced_object_id
      inner join sys.columns c1 on c1.object_id=t1.object_id and c.parent_column_id=c1.column_id
	  inner join sys.columns c2 on c2.object_id=t2.object_id and c.referenced_column_id=c2.column_id
     where sys.objects.type_desc=‘FOREIGN_KEY_CONSTRAINT‘
/****** 查询关联表信息。t1.name as 表名,t2.name as 引用的表名。 列名,引用列名 ******/ 

 /****** 删除索引,删除表 ******/
DECLARE c1 cursor for
select ‘alter table [‘+ object_name(parent_obj) + ‘] drop constraint [‘+name+‘]; ‘
from sysobjects
where xtype = ‘F‘
open c1
declare @c1 varchar(8000)
fetch next from c1 into @c1
while(@@fetch_status=0)
begin
exec(@c1)
fetch next from c1 into @c1
end
close c1
deallocate c1

-------有时候会报错,可以把里面语句复制出来直接执行
use SBE_ADMS30Dtest
go
declare @sql varchar(8000)
while (select count(*) from sys.objects where type=‘U‘)>0
begin
SELECT @sql=‘drop table ‘ +  name
FROM sysobjects
WHERE (type = ‘U‘)

exec(@sql)
end
go
/****** 删除索引,删除表 ******/ 

/****** 选择出所有的表,或者视图******/
--use 数据库名称
SELECT ‘drop table ‘ +  name
FROM sysobjects
WHERE (type = ‘U‘)
/****** 选择出所有的表,或者视图******/ 

/****** 删除所有的表,或者视图******/
--use 数据库名称
SELECT ‘drop view ‘ +  name
FROM sysobjects
WHERE (type = ‘V‘)
/****** 删除出所有的表,或者视图******/

  

时间: 2024-09-30 14:17:02

sqlserver tips的相关文章

SqlServer锁机制与实践

在如今这个云计算,大数据,移动互联网大行其道的时代,各种NoSQL数据库MongoDb.redis.HBase等使用的越来越广泛,大有替代关系型数据库的趋势.但是关系型数据库真的已经落伍了吗?答案是否定的.非关系型数据库不支持ACID属性,不支持事务,无法适应复杂查询的缺点.关系型数据库凭借其强一致性的特点,注定了在类似银行转账,订单支付等场景中,还是唯一的选择.众所周知,SQLSERVER通过锁来提供ACID属性,处理并发访问,本文尝试通过对锁机制的一些学习,让我们明白数据库查询超时,死锁等问

数据库的优化tips

数据库   TIPS:: 1.用于记录或者是数据分析的表创建时::使用Id作为主键,1,2,3...表示消息条数,用户账号id用于做外键,一个用户对应唯一个accountId 一个accountId可以对应多条数据: 2.创建索引::    例如需要根据注册版本号和注册游戏ID来查询另外一些字段的时候,就可以根据版本号和游戏ID来创建索引::相当于就是根据查询条件来建索引: 3.数据库查询优化::  (1).慎用 SELECT DISTINCT,从记录集中排除重复记录时,才使用DISTINCT;

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比 达梦数据库公司推出了他们的数据库服务管理平台,可以在该平台使用达梦数据库而无须安装达梦7数据库 地址:http://online.dameng.com/ 说实话,第一眼看到还是感到很高大上的,毕竟ORACLE.MYSQL.SQLSERVER都没有推出数据库试用的云平台 其实其他数据库也应该学习一下达梦,做一个平台让大家有机会学习自家的数据库知识,虽然现在这个时代下载安装包比较容易,不过提供一个平台也是有好处的 达梦数据库文档下载:http://f

GJM :SqlServer语言学习笔记

----------------------------SqlServer RDBMS 关系型数据库管理系统 Row/Record 行 Colimn/Attribute 列 Field/Cell 字段T-Sql-Query 最基本的SQL 查询语句 SELECT <table fields list> FROM <table names list> WHERE <row constraints sppecification> GROUP BY <Ggrouping

Sqlserver通过链接服务器访问Oracle的解决办法

转自http://blog.sina.com.cn/s/blog_614b6f210100t80r.html 一.创建sqlserver链接服务(sqlserver链接oracle)  首先sqlserver 链接oracle可以通过两个访问接口: “MSDAORA” 和“OraOLEDB.Oracle” 1.“MSDAORA”访问接口是由Microsoft OLE DB Provider for Oracle提供的,这里建议不使用此接口进行链接.通过该访问接口建立的链接服务器在进行查询orac

SQLServer数据库自增长标识列的更新修改操作

SQLServer数据库自增长标识列的更新修改操作方法在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列的引用很大程度上方便了数据库程序的开发,但是有时这个固执的字段类型也会带来一些麻烦. 一.修改标识列字段的值:(在执行insert时,将ID手动的设置成想要的值)有时,为了实现某个功能,需要修改类型为Identity自增长类型的字段的值,但由于标识的类型所限,这种操作默认是不允许的.比如,目前数据库有

SqlServer定时备份数据库和定时杀死数据库死锁解决

PS:Sqlserver 2008 R2,windows 8 64位 1.备份数据库 因为要备份,我们就要用到Sqlserver的代理,默认数据库的代理是不开启的.需要我们手动开启的. 执行备份数据库脚本,现在将脚本公布,其实将这一段代码中需要保存的文件路径和数据库名称替换一下就可以实现备份了.但是还没有达到定时备份的目的 ? 1 2 3 4 5 6 7 8 9 10 11 --自动备份并保存最近5天的SQL数据库作业脚本 宋彪 20130310 DECLARE @filename VARCHA

sqlserver数据库的sql语句使用

             T-SQL查询语句 1. tansact-SQL编程语言 美国国家标准协会(ANSI)和国际标准组织(ISO)为 SQL定义了标准,微软通过用Transact-SQL和ANSI-SQL兼容,Transact-SQL还包含了几种能够增强性能的扩展. T-SQL的组成:   数据定义语言(Date Definition Language)语句简称DDL语句 DDL语句用来建立数据库,数据库对象(create,alter,drop) create object_name al

Android应用程序性能优化Tips

主要介绍一些小细节的优化技巧,虽然这些小技巧不能较大幅度的提升应用性能,但是恰当的运用这些小技巧并发生累积效应的时候,对于整个App的性能提升还是有不小作用的.通常来说,选择合适的算法与数据结构会是你首要考虑的因素,在这篇文章中不会涉及这方面的知识点.你应该使用这篇文章中的小技巧作为平时写代码的习惯,这样能够提升代码的效率. 通常来说,高效的代码需要满足下面两个原则: 不要做冗余的工作 尽量避免执行过多的内存分配操作 To ensure your app performs well across