SQL SERVER 2008 常用命令
- 格式:doc
- 大小:137.50 KB
- 文档页数:10
SQLServer2008系统信息查询常⽤命令 查看表⼤⼩、记录数等1、返回所有数据库信息(数据库名,创建⽇期,存储路径等)。
1use master;2GO3select*from dbo.sysdatabases2、返回当前数据库所有对象(可根据type字段过滤出⽤户表,索引等)。
1USE AdventureWorks2008R2;2GO3SELECT*FROM SYS.objects WHERE TYPE='U'3、查询指定库中所有表信息(记录数,使⽤空间等)。
1USE AdventureWorks2008R2;2GO3exec sp_MSForEachTable4@precommand=N'create table ##(5表名 sysname,6记录数 int,7保留空间 Nvarchar(10),8使⽤空间 varchar(10),9索引使⽤空间 varchar(10),10未⽤空间 varchar(10))',11@command1=N'insert ## exec sp_spaceused ''?''',12@postcommand=N'select * from ## order by 记录数 '1314DROP TABLE ##结果如下:表名记录数保留空间使⽤空间索引使⽤空间未⽤空间---------- ----------- ---------- ---------- ------------ ----------discounts 316 KB 8 KB 8 KB 0 KBstores 624 KB 8 KB 16 KB 0 KB4、返回指定库所有表的记录数(使⽤系统函数sp_MSforeachtable(Table))。
1USE AdventureWorks2008R2;2go3CREATE TABLE #temp (TableName VARCHAR (255), RowCnt INT)4EXEC sp_MSforeachtable 'INSERT INTO #temp SELECT ''?'', COUNT(*) FROM ?'5SELECT TableName, RowCnt FROM #temp ORDER BY RowCnt67DROP TABLE #temp;全部在SQL Server 2008 R2环境下测试通过。
SQL8.0(可能是您想指的是SQL Server 2008)的语法与之前的版本有很多相似之处,但也有一些新特性和改进。
以下是一些SQL Server 2008中的重要语法:数据定义语言 (DDL)CREATE TABLE: 用于创建新表。
ALTER TABLE: 用于修改现有表的结构。
DROP TABLE: 用于删除表。
DROP DATABASE: 用于删除数据库。
TRUNCATE TABLE: 用于删除表中的所有行,但不删除表本身。
数据操作语言 (DML)INSERT INTO: 用于插入新行。
UPDATE: 用于修改现有行。
DELETE: 用于删除行。
查询语言 (QL)SELECT: 用于从数据库表中检索数据。
触发器SQL Server 2008 支持触发器,它是一种特殊类型的存储过程,当指定的事件 (如 INSERT、UPDATE 或 DELETE)在相关的表上发生时自动执行。
其他语法SQL Server 2008引入了一些新的数据类型,如 datetime2 和 hierarchyid。
它还引入了 TRY...CATCH 异常处理块,使错误处理更加灵活和强大。
视图创建和使用视图仍然是一个重要的部分,尤其是在构建更复杂的应用程序时。
存储过程和函数存储过程和函数是预编译的 SQL 代码,可以包含多个 SQL 语句。
这些是用于封装常用逻辑并允许在单个命令中执行多个操作的强大工具。
事务处理SQL Server 2008 支持事务处理,允许你执行一系列的操作作为一个单一的工作单元,要么全部成功,要么全部失败。
这有助于维护数据的完整性和一致性。
索引优化和查询性能SQL Server 2008 提供了一些新工具和策略,可以帮助优化查询性能,包括对索引的更精细控制和查询执行计划的改进。
安全性和权限SQL Server 2008 提供了更强大的安全性和权限管理功能,包括对透明数据加密的支持和更精细的访问控制列表管理。
sql server 2008基本操作以下是SQL Server 2008的一些基本操作:1. 创建数据库:使用CREATE DATABASE语句创建新的数据库。
例如,CREATE DATABASE mydatabase;2. 创建表:使用CREATE TABLE语句创建新的表。
例如,CREATE TABLE employees (id INT, name VARCHAR(50), age INT);3. 插入数据:使用INSERT INTO语句将数据插入表中。
例如,INSERT INTO employees (id, name, age) VALUES (1, 'John', 30);4. 更新数据:使用UPDATE语句更新表中的数据。
例如,UPDATE employees SET age = 35 WHERE id = 1;5. 删除数据:使用DELETE FROM语句删除表中的数据。
例如,DELETE FROM employees WHERE id = 1;6. 查询数据:使用SELECT语句从表中检索数据。
例如,SELECT * FROM employees;7. 创建索引:使用CREATE INDEX语句创建索引以提高检索性能。
例如,CREATE INDEX idx_name ON employees (name);8. 删除索引:使用DROP INDEX语句删除索引。
例如,DROP INDEX idx_name ON employees;9. 创建视图:使用CREATE VIEW语句创建视图。
例如,CREATE VIEW view_name AS SELECT * FROM employees;10. 删除视图:使用DROP VIEW语句删除视图。
例如,DROP VIEW view_name;以上只是SQL Server 2008的基本操作之一,实际使用中可能还涉及到更多的功能和操作。
sqlserver2008查询语句SQL Server 2008是一种关系型数据库管理系统,它支持使用SQL 语言进行数据查询和操作。
在本文中,我们将列举一些常用的SQL Server 2008查询语句,以帮助读者更好地了解和使用这个数据库管理系统。
1. 查询表中的所有数据SELECT * FROM table_name;这个查询语句可以用来查询指定表中的所有数据。
其中,table_name是要查询的表的名称。
2. 查询表中的部分数据SELECT column1, column2, ... FROM table_name WHERE condition;这个查询语句可以用来查询指定表中符合条件的部分数据。
其中,column1, column2, ...是要查询的列的名称,condition是查询条件。
3. 查询表中的唯一数据SELECT DISTINCT column1, column2, ... FROM table_name;这个查询语句可以用来查询指定表中唯一的数据。
其中,column1, column2, ...是要查询的列的名称。
4. 对查询结果进行排序SELECT column1, column2, ... FROM table_name ORDER BY column_name ASC|DESC;这个查询语句可以用来对查询结果进行排序。
其中,column1, column2, ...是要查询的列的名称,column_name是要排序的列的名称,ASC表示升序排列,DESC表示降序排列。
5. 对查询结果进行分组SELECT column1, column2, ... FROM table_name GROUP BY column_name;这个查询语句可以用来对查询结果进行分组。
其中,column1, column2, ...是要查询的列的名称,column_name是要分组的列的名称。
SQLServer2008语句⼤全完整版--========================--设置内存选项--========================--设置 min server memory 配置项EXEC sp_configure N'min server memory (MB)',0--设置 max server memory 配置项EXEC sp_configure N'max server memory (MB)',256--使更新⽣效RECONFIGURE WITH OVERRIDE--====================================================================================使⽤⽂件及⽂件组.sql========================/*--功能说明下⾯的代码是在SQL Server 2000上创建名为 MyDB 的数据库该数据库包括1个主要数据⽂件、3个⽤户定义的⽂件组和1个⽇志⽂件ALTER DATABASE语句将⽤户定义⽂件组指定为默认⽂件组。
之后,通过指默认的⽂件组来创建表,并且将图像数据和索引放到指定的⽂件组中。
最后,将⽂件组中的指定数据⽂件删除 --*/--切换到 master 数据库USE masterGO--A. 创建数据库 MyDBCREATE DATABASE MyDBON PRIMARY--主⽂件组和主要数据⽂件( NAME='MyDB_Primary',FILENAME='c:\MyDB_Prm.mdf'),FILEGROUP MyDB_FG1 --⽤户定义⽂件组1(NAME='MyDB_FG1_Dat1',FILENAME='c:\MyDB_FG1_1.ndf'),--次要数据⽂件1(NAME='MyDB_FG1_Dat2',FILENAME='d:\MyDB_FG1_2.ndf'),--次要数据⽂件2FILEGROUP MyDB_FG2--⽤户定义⽂件组2(NAME='MyDB_FG1_Dat',FILENAME='e:\MyDB_FG2.ndf'),--次要数据⽂件LOG ON --⽇志⽂件(NAME='MyDB_log',FILENAME='d:\MyDB.ldf')--DUMP TRANSACTION MyDB WITH NO_LOG and truncate_onlyGO--B. 修改默认数据⽂件组ALTER DATABASE MyDBMODIFY FILEGROUP MyDB_FG1 DEFAULTGO---切换到新建的数据库 MyDBUSE MyDB--C. 在默认⽂件组MyDB_FG1创建表,并且指定图像数据保存在⽤户定义⽂件组MMyDB_FG2CREATE TABLE MyTable(cola int PRIMARY KEY ,colb char(8) ,colc image)TEXT IMAGE_ON MyDB_FG2--在⽤户定义⽂件组MyDB_FG2上创建索引CREATE INDEX IX_MyTableON MyTable(cola)ON MyDB_FG2GO-- 并且清空数据⽂件MyDB_FG1_Dat1DBCC SHRINKFILE(MyDB_FG1_Dat1,EMPTYFILE)--删除数据⽂件MyDB_FG1_Dat1ALTER DATABASE MyDB REMOVE FILE MyDB_FG1_Dat1--========================================================================== --===============================调整数据库的⽂件属性.sql--===============================--A. 将tempdb数据库的主数据⽂件⼤⼩设置为10MB。
1新建数据库create database hhc;2新建数据库里的一张表use hhc;create table hy(name varchar(10),age varchar(10));3查看数据库表结构,不需要制定数据库sp_help hy4修改表的数据类型use hhc;alter table lxalter column name varchar(40);5更改表中的字段的数目向表中添加字段use hhc;alter table hyadd score varchar(20);删除表中的字段use hhc;alter table hydrop column score;6给表中的字段改名sp_rename'','username';7给数据表改名sp_rename hy,hanyan;8删除数据表use hhc;drop table hanyan;9查看数据库表的信息select*from lx10向表中插入数据默认给所有的列添加数据insert into lxvalues('还魂草','18');给特定的列添加数据use hhc;insert into lx(name)values('huanhuncao');一次添加多条数据use hhc;insert into lx(name,age)values('lx','21'),('李行','22');11复制一个表的数据到另外一个表use hhc;insert into hy(name1,age1)select name,agefrom lx;12修改表中的数据,把年龄为21的这一行的姓名改了,不加条件就是这一列的所有数据全部修改use hhc;update lxset name='lixing'where age='21';修改前n条数据use hhc;update top(2)hyset name1='修改的'13从表中删除数据,不加条件就是全部删除use hhc;delete from lxwhere age='21'删除前n条数据use hhc;delete top(2)hy14右键数据库新建表,在新建表里定义表的数据类型和类型名,定义完了后,点击菜单栏下的保存按钮,保存,输入表名。
SqlServer2008快捷键书签:清除所有书签。
CTRL-SHIFT-F2书签:插⼊或删除书签(切换)。
CTRL+F2书签:移动到下⼀个书签。
F2 功能键书签:移动到上⼀个书签。
SHIFT+F2取消查询。
ALT+BREAK连接:连接。
CTRL+O连接:断开连接。
CTRL+F4连接:断开连接并关闭⼦窗⼝。
CTRL+F4数据库对象信息。
ALT+F1编辑:清除活动的编辑器窗格。
CTRL+SHIFT+DEL编辑:注释代码。
CTRL+SHIFT+C编辑:复制。
还可以使⽤ CTRL+INSERT。
CTRL+C编辑:剪切。
还可以使⽤ SHIFT+DEL。
CTRL+X编辑:减⼩缩进。
SHIFT+TAB编辑:在编辑器窗格中删除⾄⾏尾。
CTRL+DEL编辑:查找。
CTRL+F编辑:转到⾏号。
CTRL+G编辑:增⼤缩进。
TAB编辑:使选定内容为⼩写。
CTRL+SHIFT+L编辑:使选定内容为⼤写。
CTRL+SHIFT+U编辑:粘贴。
还可以使⽤ SHIFT+INSERT。
CTRL+V编辑:删除注释。
CTRL+SHIFT+R编辑:重复上次搜索或查找下⼀个。
F3 功能键编辑:替换。
CTRL+H编辑:全选。
CTRL+A编辑:撤消。
CTRL+Z执⾏查询。
还可以使⽤ CTRL+E (针对向后兼容性)。
F5 功能键SQL 查询分析器帮助。
F1 功能键对所选 Transact-SQL 语句的帮助。
SHIFT+F1浏览:在查询窗格和结果窗格之间切换。
F6 功能键浏览:切换窗格。
Shift+F6浏览:窗⼝选择器。
CTRL+W"新建查询"窗⼝。
CTRL+N对象浏览器(显⽰/隐藏)。
F8 功能键对象搜索。
F4 功能键分析查询并检查语法。
CTRL+F5打印。
CTRL+P结果:以表格格式显⽰结果。
CTRL+D结果:以⽂本格式显⽰结果。
CTRL+T结果:移动拆分器。
系统视图,系统表,系统存储过程的使用获取数据库中用户表信息1、获取特定库中所有用户表信息select*from sys.tablesselect*from sys.objects where type='U' --用户表第二条语句中当type='S'时是系统表2、获取表的字段信息select*from sys.columns where object_id=object_id('表名') select*from syscolumns where id=OBJECT_ID('表名' )3、获取当前库中表的字段及类型信息(1)select'字段名'=,'类型名'=,'字段长度'=a.max_length,'参数顺序'=a.column_idfrom sys.columns a left join sys.types bon er_type_id=er_type_idwhere object_id=object_id('表名')syscolumns与sys.columns表用法类似。
获取索引或主键信息1、获取对象及对应的索引的信息select'对象名'=,'对象类型'=a.type,'索引名'=,'索引类型'=case b.type when 1 then'聚集索引'when 2 then'非聚集索引'when 3 then'xml索引'else'空间索引'end,'主键否'=case when b.is_primary_key=1 then'主键'else''endFROM sys.objects A JOIN sys.indexes B ON A.object_id=B.object_id WHERE A.type='U'AND IS NOT NULL order by 2、获取表的主键及对应的字段(1)select'表名'=,'主键名'=,'字段名'=from sys.indexes a join sys.index_columns bon a.object_id=b.object_id and a.index_id=b.index_idjoin sys.columns c on a.object_id=c.object_id andc.column_id=b.column_idjoin sys.objects d on d.object_id=c.object_idwhere a.is_primary_key=1(2)SELECT'表名'=OBJECT_NAME(b.parent_obj),'主键名'=,'字段名'=FROM syscolumns a,sysobjects b,sysindexes c,sysindexkeys d WHERE b.xtype='PK'AND b.parent_obj=a.id AND c.id=a.id AND = AND d.id=a.idAND d.indid=c.indid AND a.colid=d.colid(3)select'所属架构'=,'表名'=,'主键名'=,'列名'=,'键列序数'=ic.key_ordinalfrom sys.key_constraints as kjoin sys.tables as ton t.object_id=k.parent_object_idjoin sys.schemas as son s.schema_id=t.schema_idjoin sys.index_columns as icon ic.object_id=t.object_idand ic.index_id=k.unique_index_idjoin sys.columns as con c.object_id=t.object_idand c.column_id=ic.column_id where k.type='pk';(4)使用系统存储过程获取指定表的主键信息EXEC sp_pkeys'表名'--表名只能是当前数据库下的单独表名不能带上架构名3、查询哪些表创建了主键select'表名'= from(select name,object_id from sys.objects where type='u')aleft joinsys.indexes bon a.object_id=b.object_id and b.is_primary_key=1where is not null注:查询哪些表没有创建主键,将where条件改成is null 即可。
查找视图信息1、查看视图属性信息exec sp_help '视图名'2、查看创建视图脚本exec sp_helptext'视图名'3、查看当前数据库所有视图基本信息select*from sys.viewsselect*from sys.objects where type='V'select*from INFORMATION_SCHEMA.VIEWS4、查看视图对应的字段及字段属性select'视图名'=,'列名'=,'字段类型'=TYPE_NAME(b.system_type_id),'字段长度'=b.max_lengthfrom sys.views a join sys.columns bon a.object_id=b.object_id order by 5、获取视图中的对象信息exec sp_depends'视图名'查看存储过程信息1、基本信息select*from sys.proceduresselect*from sys.objects where type='P'2、查看存储过程创建文本sp_helptext 存储过程名称select text from syscomments where id=object_id (存储过程名称)3、查看存储过程的参数信息(1)select'参数名称'=name,'类型'=type_name(xusertype),'长度'=length,'参数顺序'=colidfrom syscolumnswhere id=object_id(存储过程名称)(2)select'参数名称'=name,'类型'=type_name(system_type_id),'长度'=max_length,'参数顺序'=parameter_idfrom sys.parameterswhere object_id=object_id(存储过程名称)返回当前环境中可查询的指定表或视图的列信息。
exec sp_columns表名select*from sys.columns where object_id=OBJECT_id(表名)select*from sys.syscolumns where id=OBJECT_ID(表名)select*from information_schema.columns where TABLE_NAME=表名查询存储过程或函数的参数的详细信息select*from sys.parameters where object_id=object_id(函数或存储过程名称)获取所有数据库信息1、获取数据库的基本信息select name from sysdatabases order by name2、获取某个数据库的文件信息select*from[数据库名].[架构名].sysfiles3、获取数据库磁盘使用情况exec sp_spaceused4、获取数据库中表的空间使用情况IF OBJECT_ID('tempdb..#TB_TEMP_SPACE')IS NOT NULL DROP TABLE#TB_TEMP_SPACEGOCREATE TABLE#TB_TEMP_SPACE(NAME VARCHAR(500),ROWS INT,RESERVED VARCHAR(50),DATA VARCHAR(50),INDEX_SIZE VARCHAR(50),UNUSED VARCHAR(50))GOSP_MSFOREACHTABLE'INSERT INTO #TB_TEMP_SPACE exec sp_spaceused ''?''' GOSELECT*FROM#TB_TEMP_SPACEORDER BY REPLACE(DATA,'KB','')+0 DESC获取触发器的相关信息1、查看触发器定义及相关属性信息(1)exec sp_help'触发器名'(2)查看表中指定类型的触发器的属性信息exec sp_helptrigger ['表名'][,['触发器类型']]--参数2可选,省略参数2时返回该表中所有类型的触发器属性2、获取触发器的创建脚本exec sp_helptext '触发器名'3、查看表中禁用的触发器select name from sys.triggers where parent_id=object_id('表名')and is_disabled=1注:is_disabled=0时为启用的触发器。
4、获取触发器的父类名,触发器名,触发器状态和触发器类型信息select'父类名'=,'对象类型'=a.type,'触发器名'=,'触发器状态'=case when b.is_disabled=1 then'禁用'else'启用'end,'触发器类型'=case when b.is_instead_of_trigger=1 then'instead of' else'after'endfrom sys.objects a join sys.triggers b on a.object_id=b.parent_id注:查询单个表或视图的触发器信息加上a.object_id=object_id(表名)条件。