日期:2014-05-16  浏览次数:20476 次

写在创建数据库之前的几行代码,求解释。。。。。。。。。。。。。。。。。。
USE MASTER 
GO
exec sp_configure 'show advanced options',1
go
reconfigure
go
exec sp_configure 'xp_cmdshell',1
go
reconfigure
go
EXEC XP_CMDSHELL 'MKDIR E:\HOUSE1'
GO

除了use master这行不用解释,
其他的最好每行都解释一下,谢谢。
------解决方案--------------------
实际上的逻辑是:
1、打开高级选项。
2、把选项的值设为1,而1是开启,0是关闭的意思
3、调用外部命令完成操作
更详细的信息建议阅读sqlserver自带的联机丛书
USE MASTER 
GO
exec sp_configure 'show advanced options',1--打开高级选项,非默认的配置需要打开这个才能用,不然报错
go
reconfigure--使上面的语句生效
go
exec sp_configure 'xp_cmdshell',1--打开xp_cmdshell配置,这个配置由于存在一定的安全风险,安装时默认关闭,要用之前需要开启
go
reconfigure--生效
go
EXEC XP_CMDSHELL 'MKDIR E:\HOUSE1'--通过xp_cmdshell 调用mkdir e:\hourse1这个windows上的cmd命令,实际上你可以简单地认为这个是sqlserver借助windows调用cmd命令
GO

------解决方案--------------------
USE MASTER 
GO

--为了能配置下面的xp_cmdshell高级参数,必须要把参数show advanced options设置为1
--否则就没办法配置xp_cmdshell参数了
exec sp_configure 'show advanced options',1  
go
reconfigure   --应用上面的设置
go

--设置xp_cmdshell 为1,那么就可以用扩展存储过程xp_cmdshell了
--不过这个存储过程一般不建议使用,权限很大的,容易导致一些安全问题
exec sp_configure 'xp_cmdshell',1
go
reconfigure
go

--用这个扩展存储过程来创建一个目录,路径是: E:\HOUSE1
EXEC XP_CMDSHELL 'MKDIR E:\HOUSE1'
GO