sql server 常用命令总结
2010-12-23 13:47
190 查看
--设置用户访问数据库的形式
Alter database TestAA set SINGLE_USER with rollback immediate --设置单用户访问数据库
Alter database TestAA set RESTRICTED_USER with rollback immediate
RESTRICTED_USER 只允许 db_owner 固定数据库角色成员以及 dbcreator 和 sysadmin 固定服务器角色成员连接到数据库,不过对连接数没有限制。在 ALTER DATABASE 语句的终止子句所指定的时间范围内,所有数据库连接都将被断开。在数据库转换到 RESTRICTED_USER 状态后,不合格用户所做的连接尝试将被拒绝。
Alter database TestAA set MULTI_USER with rollback immediate --设置用户正常访问
--设置数据库恢复模式
sql 2008 不支持nolog 和 truncate_only 如果要截断日志的话,需要先把数据库搞成简单模型,然后在收缩日志,在改成完全模式。备份一次数据库。
Alter database set recovery {simple/full/bulk_logged}
dbcc shrinkfile('filename',10)
--导出数据到文本
--EXEC master..xp_cmdshell 'bcp "Select cdoc_id,csubject from cmsdbquery..tbl_article" queryout c:/DT.txt -c -SXXXXX -Usa -PXXXXX'
--跟踪脚本需要打开的选项
set statistics io on
set statistics profile on
set statistics time on
--释放过程高速缓存将导致重新编译某些部分
DBCC FREEPROCCACHE
--从缓冲池中删除所有清除缓冲区
不用关闭和重启服务器或者服务
DBCC DROPCLEANBUFFERS
--以报表形式显示有关过程高速缓存的信息
DBCC PROCCACHE
--显示指定表上的指定目标的当前分布统计信息
DBCC SHOW_STATISTICS ( table , target )
--从远程服务器打开数据库连接取数据
SELECT top 20 *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=xxx.xxx.xx.x,port;User ID=sa;Password=xxxxxxx'
).[product].dbo.tableaa
data source 好像不能有中括号,好多网友的opendatasource不能用就是这个原因
SELECT *
FROM OpenDataSource
('Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/bbb.xls";User ID=;Password=;Extended properties=Excel 5.0')...[sheet1$]
文本的查询
文件必须是,号分割文件
HDR=YES 的时候,第一行被认为是字段名
HDR=NO 的时候,第一行被认为是数据
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Text;HDR=NO;DATABASE=C:/' --c:/是目录
,aaa#txt) --文件名
BULK INSERT xxxx_trs.dbo.xxxx_day
FROM 'F:/BI_DsssDayAddin_cms_IN.csv'
WITH
(
FIELDTERMINATOR =',',
ROWTERMINATOR ='/n'
)
--查看sql版本
SELECT SERVERPROPERTY('productversion'),SERVERPROPERTY('productlevel'),SERVERPROPERTY('edition')
--初始化标识列
DBCC CHECKIDENT (ProductPicture, RESEED, 1)
--数据库2个比较常用的函数
DATABASEPROPERTY 返回数据库状态的值
select DATABASEPROPERTY(dbname, 'issingleuser') 返回数据库是不是单用户模式
返回信息,说明用户是否可以访问指定的数据库
--T终端用户的人
Query user 查询当前登录用户
LogOff sessionid 注销会话
Tsdiscon sessionid 断开某个会话的连接
命令行下需要先建立一个ipc$会话
net use //10.168.0.21/c$ "XX" /user:administrator
query user /server 10.168.0.21
tsdiscon 2 /server 10.168.0.21
创建与删除SQL约束或字段约束。
SQL约束控制
1)禁止所有表约束的SQL
select 'alter table '+name+' nocheck constraint all' from sysobjects where type='U'
2)删除所有表数据的SQL
select 'TRUNCATE TABLE '+name from sysobjects where type='U'
3)恢复所有表约束的SQL
select 'alter table '+name+' check constraint all' from sysobjects where type='U'
4)删除某字段的约束
declare @name varchar(100)
--DF为约束名称前缀
select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('表名') and b.id=a.cdefault and a.name='字段名' and b.name like 'DF%'
--删除约束
alter table 表名 drop constraint @name
--为字段添加新默认值和约束
ALTER TABLE 表名 ADD CONSTRAINT @name DEFAULT (0) FOR [字段名]
对字段约束进行更改
--删除约束
ALTER TABLE tablename
Drop CONSTRAINT 约束名
--修改表中已经存在的列的属性(不包括约束,但可以为主键或递增或唯一)
ALTER TABLE tablename
alter column 列名 int not null
--添加列的约束
ALTER TABLE tablename
ADD CONSTRAINT DF_tablename_列名 DEFAULT(0) FOR 列名
--添加范围约束
alter table tablename add check(性别 in ('M','F'))
--命令查看sql服务启动状态
xp_cmdshell 'sc query MSSQLSERVER |find "STATE"'
--查看对象的一些附加属性
查看某列是否是自增列
columnproperty(id , column ,IsIdentity) = 1
BCP导入倒出
EXEC master..xp_cmdshell 'bcp "select * from fetionwapcore.dbo.resource_news" queryout c:/resource_news.txt -c -t "|" -S 192.168.xx.xx/aadb -U wxx -P xx'
EXEC master..xp_cmdshell 'bcp "test.dbo.[User]" in c:/resource_news.txt -c -t "|" -S 192.168.xx.x -U sa -P pas'
--获得禁用所有外键约束的语句
select 'ALTER TABLE [' + b.name + '] NOCHECK CONSTRAINT ' + a.name +';' as 禁用约束
from sysobjects a ,sysobjects b
where a.xtype ='f' and a.parent_obj = b.id
--获得启用所有外键约束的语句
select 'ALTER TABLE [' + b.name + '] CHECK CONSTRAINT ' + a.name +';' as 启用约束
from sysobjects a ,sysobjects b
where a.xtype ='f' and a.parent_obj = b.id
--删除所有的外键
select 'alter table '+OBJECT_NAME(parent_obj)+ ' drop constraint '+name from sysobjects
where xtype = 'f'
--更改默认排序规则
use master
go
Alter database xxxxxx set SINGLE_USER with rollback immediate
go
alter database xxxxxx COLLATE Chinese_PRC_CI_AS
go
Alter database xxxxxx set MULTI_USER with rollback immediate
--超NB的文本合并脚本
for %f in (*.sql) do type %f >>c:/aa.txt
--判断一列是否是数字
select CONVERT(decimal,result) as a
from AnswerResults where result not like '%[^0-9]^.%'
Alter database TestAA set SINGLE_USER with rollback immediate --设置单用户访问数据库
Alter database TestAA set RESTRICTED_USER with rollback immediate
RESTRICTED_USER 只允许 db_owner 固定数据库角色成员以及 dbcreator 和 sysadmin 固定服务器角色成员连接到数据库,不过对连接数没有限制。在 ALTER DATABASE 语句的终止子句所指定的时间范围内,所有数据库连接都将被断开。在数据库转换到 RESTRICTED_USER 状态后,不合格用户所做的连接尝试将被拒绝。
Alter database TestAA set MULTI_USER with rollback immediate --设置用户正常访问
--设置数据库恢复模式
sql 2008 不支持nolog 和 truncate_only 如果要截断日志的话,需要先把数据库搞成简单模型,然后在收缩日志,在改成完全模式。备份一次数据库。
Alter database set recovery {simple/full/bulk_logged}
dbcc shrinkfile('filename',10)
--导出数据到文本
--EXEC master..xp_cmdshell 'bcp "Select cdoc_id,csubject from cmsdbquery..tbl_article" queryout c:/DT.txt -c -SXXXXX -Usa -PXXXXX'
--跟踪脚本需要打开的选项
set statistics io on
set statistics profile on
set statistics time on
--释放过程高速缓存将导致重新编译某些部分
DBCC FREEPROCCACHE
--从缓冲池中删除所有清除缓冲区
不用关闭和重启服务器或者服务
DBCC DROPCLEANBUFFERS
--以报表形式显示有关过程高速缓存的信息
DBCC PROCCACHE
--显示指定表上的指定目标的当前分布统计信息
DBCC SHOW_STATISTICS ( table , target )
--从远程服务器打开数据库连接取数据
SELECT top 20 *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=xxx.xxx.xx.x,port;User ID=sa;Password=xxxxxxx'
).[product].dbo.tableaa
data source 好像不能有中括号,好多网友的opendatasource不能用就是这个原因
SELECT *
FROM OpenDataSource
('Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/bbb.xls";User ID=;Password=;Extended properties=Excel 5.0')...[sheet1$]
文本的查询
文件必须是,号分割文件
HDR=YES 的时候,第一行被认为是字段名
HDR=NO 的时候,第一行被认为是数据
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Text;HDR=NO;DATABASE=C:/' --c:/是目录
,aaa#txt) --文件名
BULK INSERT xxxx_trs.dbo.xxxx_day
FROM 'F:/BI_DsssDayAddin_cms_IN.csv'
WITH
(
FIELDTERMINATOR =',',
ROWTERMINATOR ='/n'
)
--查看sql版本
SELECT SERVERPROPERTY('productversion'),SERVERPROPERTY('productlevel'),SERVERPROPERTY('edition')
--初始化标识列
DBCC CHECKIDENT (ProductPicture, RESEED, 1)
--数据库2个比较常用的函数
DATABASEPROPERTY 返回数据库状态的值
select DATABASEPROPERTY(dbname, 'issingleuser') 返回数据库是不是单用户模式
HAS_DBACCESS ( 'database_name' )
返回信息,说明用户是否可以访问指定的数据库
--T终端用户的人
Query user 查询当前登录用户
LogOff sessionid 注销会话
Tsdiscon sessionid 断开某个会话的连接
命令行下需要先建立一个ipc$会话
net use //10.168.0.21/c$ "XX" /user:administrator
query user /server 10.168.0.21
tsdiscon 2 /server 10.168.0.21
创建与删除SQL约束或字段约束。
SQL约束控制
1)禁止所有表约束的SQL
select 'alter table '+name+' nocheck constraint all' from sysobjects where type='U'
2)删除所有表数据的SQL
select 'TRUNCATE TABLE '+name from sysobjects where type='U'
3)恢复所有表约束的SQL
select 'alter table '+name+' check constraint all' from sysobjects where type='U'
4)删除某字段的约束
declare @name varchar(100)
--DF为约束名称前缀
select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('表名') and b.id=a.cdefault and a.name='字段名' and b.name like 'DF%'
--删除约束
alter table 表名 drop constraint @name
--为字段添加新默认值和约束
ALTER TABLE 表名 ADD CONSTRAINT @name DEFAULT (0) FOR [字段名]
对字段约束进行更改
--删除约束
ALTER TABLE tablename
Drop CONSTRAINT 约束名
--修改表中已经存在的列的属性(不包括约束,但可以为主键或递增或唯一)
ALTER TABLE tablename
alter column 列名 int not null
--添加列的约束
ALTER TABLE tablename
ADD CONSTRAINT DF_tablename_列名 DEFAULT(0) FOR 列名
--添加范围约束
alter table tablename add check(性别 in ('M','F'))
--命令查看sql服务启动状态
xp_cmdshell 'sc query MSSQLSERVER |find "STATE"'
--查看对象的一些附加属性
查看某列是否是自增列
columnproperty(id , column ,IsIdentity) = 1
BCP导入倒出
EXEC master..xp_cmdshell 'bcp "select * from fetionwapcore.dbo.resource_news" queryout c:/resource_news.txt -c -t "|" -S 192.168.xx.xx/aadb -U wxx -P xx'
EXEC master..xp_cmdshell 'bcp "test.dbo.[User]" in c:/resource_news.txt -c -t "|" -S 192.168.xx.x -U sa -P pas'
--获得禁用所有外键约束的语句
select 'ALTER TABLE [' + b.name + '] NOCHECK CONSTRAINT ' + a.name +';' as 禁用约束
from sysobjects a ,sysobjects b
where a.xtype ='f' and a.parent_obj = b.id
--获得启用所有外键约束的语句
select 'ALTER TABLE [' + b.name + '] CHECK CONSTRAINT ' + a.name +';' as 启用约束
from sysobjects a ,sysobjects b
where a.xtype ='f' and a.parent_obj = b.id
--删除所有的外键
select 'alter table '+OBJECT_NAME(parent_obj)+ ' drop constraint '+name from sysobjects
where xtype = 'f'
--更改默认排序规则
use master
go
Alter database xxxxxx set SINGLE_USER with rollback immediate
go
alter database xxxxxx COLLATE Chinese_PRC_CI_AS
go
Alter database xxxxxx set MULTI_USER with rollback immediate
--超NB的文本合并脚本
for %f in (*.sql) do type %f >>c:/aa.txt
--判断一列是否是数字
select CONVERT(decimal,result) as a
from AnswerResults where result not like '%[^0-9]^.%'
相关文章推荐
- SQL Server知识总结及常用命令
- SQL Server 常用命令总结
- maven常用命令总结
- Mongodb常用命令总结
- Git常用命令总结--GIT命令大全
- Docker常用命令总结
- vi 常用命令 总结
- 常用Git命令总结
- Linux运维常用命令总结
- Android开发中常用ADB命令总结
- npm常用命令总结
- Linux下的一些SSH常用命令总结
- git常用命令总结
- Git常用命令总结
- vim常用命令总结(转)
- Tcl与Design Compiler (十三)——Design Compliler中常用到的命令(示例)总结
- Linux常用命令总结
- Vim常用命令总结
- linux常用命令总结
- Linux中vi编辑器中常用命令总结