【奥门威尼斯网址】SQL远程创造数据库

by admin on 2020年1月3日

/*其实我也搞不懂为什么要用SQL来创建,明明SQL
Server有图形化创建数据库多省事啊!*/
USE master;

SQL
Develope启动后,需要创建一个数据库连接,只有创建了数据库连接,才能在该数据库的方案中创建、更改对象或编辑表中的数据。

CREATE PROCEDURE [dbo].[p_CreateDB]   @Des_DB sysname,
 @ServerName sysname=N”,  @UserName sysname=N”,  @pwd sysname=N”,
@fliename sysname   AS  SET NOCOUNT ON DECLARE @srvid int, @dbsid int,
@Dbid int, @DBFile int,  @LogFile int, @CmdStr nvarchar(4000)  declare
@err int,@src varchar(255), @desc varchar(255),@dname varchar(255)   IF
ISNULL(@ServerName,N”)=N”  SET @ServerName=@@ServerName   EXEC
@err=sp_oacreate ‘sqldmo.sqlserver’,@srvid OUT  IF @err<>0 GOTO
lb_Err  IF ISNULL(@UserName,N”)=N”  BEGIN  EXEC
@err=sp_oasetproperty @srvid,’loginsecure’,-1  IF @err<>0 GOTO
lb_Err  EXEC @err=sp_oamethod @srvid,’connect’,NULL,@ServerName  END
 ELSE  EXEC @err=sp_oamethod
@srvid,’connect’,NULL,@ServerName,@UserName,@pwd  IF @err<>0 GOTO
lb_Err  EXEC @err=sp_oacreate ‘SQLDMO.Database’,@Dbid OUT  IF
@err<>0 GOTO lb_Err  EXEC @err=sp_oasetproperty @Dbid,
‘Name’,@Des_DB IF @err<>0 GOTO lb_Err EXEC @err=sp_oacreate
‘SQLDMO.DBFile’,@DBFile OUT IF @err<>0 GOTO lb_Err EXEC
@err=sp_oasetproperty @DBFile, ‘Name’,@Des_DB IF @err<>0 GOTO
lb_Err set @dname=@fliename+@Des_DB+’.mdf’ EXEC @err=sp_oasetproperty
@DBFile, ‘PhysicalName’,@dname IF @err<>0 GOTO lb_Err EXEC
@err=sp_oasetproperty @DBFile, ‘PrimaryFile’,’true’ IF @err<>0
GOTO lb_Err  EXEC @err=sp_oasetproperty @DBFile, ‘FileGrowthType’,10
IF @err<>0 GOTO lb_Err EXEC @err=sp_oasetproperty @DBFile,
‘FileGrowth’,50 IF @err<>0 GOTO lb_Err EXEC @err = sp_OAMethod
@Dbid,’FileGroups.Item(“primary”).DBFiles.Add’,null,@DBFile IF
@err<>0 GOTO lb_Err EXEC @err=sp_oacreate
‘SQLDMO.LogFile’,@LogFile OUT IF @err<>0 GOTO lb_Err set
@dname=@Des_DB+’_log’ EXEC @err=sp_oasetproperty @LogFile,
‘Name’,@dname IF @err<>0 GOTO lb_Err set
@dname=@fliename+@dname+’.ldf’ EXEC @err=sp_oasetproperty @LogFile,
‘PhysicalName’,@dname EXEC @err = sp_OAMethod
@Dbid,’TransactionLog.LogFiles.Add’,null,@LogFile IF @err<>0 GOTO
lb_Err EXEC @err = sp_OAMethod @srvid,’Databases.Add’,null,@dbid  IF
@err<>0 GOTO lb_Err  EXEC @err= sp_OAGetProperty @srvid,
‘Databases’, @dbsid OUT IF @err<>0 GOTO lb_Err SET @CmdStr =
‘Add’ EXEC @err = sp_OAMethod @dbsid,@CmdStr,null,@dbid SET @err=0 GOTO
lb_Exit  lb_Err:   EXEC sp_oageterrorinfo NULL, @src OUT, @desc OUT  
 EXEC sp_OADestroy @LogFile  EXEC sp_OADestroy @DBFile   EXEC
sp_OADestroy @Dbsid    EXEC sp_OADestroy @Dbid     EXEC sp_OADestroy
@srvid    EXEC @err=sp_oamethod @srvid,’DisConnect’
RAISERROR(N’错误编号 %#x, 错误源”%s”, 错误描述
“%s”‘,16,1,@err,@src,@desc)  RETURN -1 lb_Exit: EXEC sp_OADestroy
@LogFile EXEC sp_OADestroy @DBFile  EXEC sp_OADestroy @Dbsid  EXEC
sp_OADestroy @Dbid   EXEC sp_OADestroy @srvid   EXEC @err=sp_oamethod
@srvid,’DisConnect’ RETURN @err ;

use master
go
if exists(select * from sysdatabases where name='bbsDB')
   drop database bbsDB
go
Exec xp_cmdshell 'mkdir d:/project'   --调用dos命令创建文件夹

create database bbsDB
 on
(
 name='bbsDB_data',
 filename='d:/project/bbsDB_data.mdf',
 size=10mb,
 filegrowth=20%
)
log on
(
name='bbsDB_log',
 filename='d:/project/bbsDB_data.ldf',
 size=3mb,
 maxsize=20mb,
 filegrowth=10%
)

运行后显示信息如下:
消息15281,级别16,状态1,过程xp_cmdshell,第1 行
SQL Server 阻止了对组件'xp_cmdshell' 的过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用sp_configure 启用'xp_cmdshell'。有关启用'xp_cmdshell' 的详细信息,请参阅SQL Server 联机丛书中的"外围应用配置器"。


解决办法:
1、手动在D盘创建“project”目录,同时注释掉Exec xp_cmdshell 'mkdir d:/project' 语句
2、启动外围应用配置器工具
在“开始”菜单中,依次指向“程序”、“Microsoft SQL Server 2005”、“配置工具”,再单击“SQL Server 外围应用配置器”。单击“配置外围应用”旁边的链接。默认值为 localhost。如果您以前选择的是一个命名服务器,则将会看到该服务器名称。选择“功能的外围应用配置器”,启用'xp_cmdshell'选项打勾即可。
3、设置服务器配置选项
(1)启用'xp_cmdshell',加入如下语句:
sp_configure 'xp_cmdshell', 1;
go
reconfigure;
go
则执行结果如下:
消息15123,级别16,状态1,过程sp_configure,第51 行
配置选项'xp_cmdshell' 不存在,也可能是高级选项。
(2)可通过下面语句查看高级选项
    SELECT * FROM sys.configurations
ORDER BY name ;
GO

结果:
configuration_id name    value     minimum    maximum   value_in_use     description    is_dynamic is_advanced                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
------------------------------------------------------- ---------- -----------
。。。。。。
16390     xp_cmdshell       0           0          1            0      Enable or disable command shell     1     1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
(62 行受影响)

(3)若要用 sp_configure 配置高级选项,必须首先在 "show advanced options" 选项设置为 1 的情况下运行 sp_configure,然后运行 RECONFIGURE:
加入下面语句后则执行成功:
sp_configure 'show advanced options', 1;
go
reconfigure;
go

oracle 创建动态SQL 步骤语句相关
需求是:将多个sql语句储存在数据库表中,储存方式为ID,sql语句,通过某种方式依次执行这些SQL,然后将结果储存在另一个表中,应该怎么做?或者跟我说说关键词我搜搜,谢谢大家啦~

​DECLARE @sqlstr nvarchar(max)
/*定义一个变量*/
DECLARE @database_name nvarchar(20) = ‘MyDB’;
/*这里输入需要创建的数据库名*/
DECLARE @file_name_d nvarchar(200) = CONVERT(sysname,
SERVERPROPERTY(‘InstanceDefaultDataPath’))
/*这里是利用SQL
Server的serverproperty这个函数来获取当前实例的默认数据文件位置和日志文件位置*/
DECLARE @file_name_l nvarchar(200) = CONVERT(sysname,
SERVERPROPERTY(‘InstanceDefaultLogPath’))
/*微软官方参数介绍

IF DB_ID(‘MyDB’) IS NOT NULL
    BEGIN
        PRINT ‘Database ‘ +@database_name+’ already exists’; 
–判断MyDB是否存在,存在的话就干掉,我也不知道为什么要这么写
        DROP DATABASE MyDB; –还是手动删除吧,不使用脚本删除
    END

创建数据库连接的步骤如下。

参考资料:

ELSE
    
    BEGIN
        SET @sqlstr= ‘CREATE DATABASE’+’ ‘+@database_name+’ ‘
        SET @sqlstr =  @sqlstr +’ON’
        SET @sqlstr =  @sqlstr +'(‘    
        SET @sqlstr =  @sqlstr +’NAME = ‘+’ ‘+@database_name+’_dat,’
        SET @sqlstr =  @sqlstr +’FILENAME =
‘+””+@file_name_d+”+@database_name+’.mdf”,’
        SET @sqlstr =  @sqlstr +’SIZE = 10,’
        SET @sqlstr =  @sqlstr +’MAXSIZE = 50,’
        SET @sqlstr =  @sqlstr +’FILEGROWTH = 5′
        SET @sqlstr =  @sqlstr +’)’
        SET @sqlstr =  @sqlstr +’LOG ON’
        SET @sqlstr =  @sqlstr +'(   NAME = ‘+’
‘+@database_name+’_log,’
        SET @sqlstr =  @sqlstr +’FILENAME =
‘+””+@file_name_l+”+@database_name+’.ldf”,’
        SET @sqlstr =  @sqlstr +’SIZE = 5MB,’
        SET @sqlstr =  @sqlstr +’MAXSIZE = 25MB,’
        SET @sqlstr =  @sqlstr +’FILEGROWTH = 5MB’
        SET @sqlstr =  @sqlstr +’);’
        Print (@sqlstr) —
如果不想直接执行,使用使用print参数先把命令打印出来
        –exec (@sqlstr);   — 执行直接上面生成的动态SQL
        –Print ‘Datbaase ‘+@database_name +’ has been created using
default data and log location in the server configuration!!’
        /*打印已经创建成功的数据库名字*/
        –Print ‘Data file location =
‘+@file_name_d+@database_name+’.mdf’;
        /*打印创建的数据库的数据文件路径*/
        –Print ‘Log file location =
‘+@file_name_l+@database_name+’.ldf’;
        /*打印创建的数据库的日志文件路径*/
    END

(1)在主界面左边窗口的“连接”选项卡中右键单击“连接”节点,选择“新建连接”菜单项,弹出“新建/选择数据库连接”窗口,如图2.17所示。

功能的外围应用配置器工具提供一个单一界面,用于启用或禁用多个数据库引擎、Analysis
Services 和Reporting Services 功能。禁用未使用的功能可减少 SQL
Server 外围应用,有助于保护 Microsoft SQL Server安装。

奥门威尼斯网址 1 

下表列出了每个设置的默认值,并提供指向 F1 帮助主题的链接。

图2.17 
新建连接

数据库引擎功能默认值

(2)如果要创建一个Oracle数据库中system用户方案的数据库连接,需要在图2.18中填写的内容有:

设置
默认值
F1 帮助主题
即席分布式查询
在新安装中禁用。
公共语言运行时 (CLR) 集成
在新安装中禁用。
专用管理员连接 (DAC)
在新安装中禁用。
数据库邮件
在新安装中禁用。
本机 XML Web 服务
默认情况下,未配置端点。
OLE 自动化存储过程
在新安装中禁用。
Service Broker
默认情况下,未配置端点。
SQL 邮件
在新安装中禁用。
Web 助手存储过程
在新安装中禁用。
xp_cmdshell
在新安装中禁用。


“连接名”中输入一个自定义的连接名,如system_ora;

Analysis Services 功能默认值


“用户名”中输入system;在“口令”中输入相应密码;

设置
默认值
F1 帮助主题
即席数据挖掘查询
在新安装中禁用。
匿名连接
在新安装中禁用。
链接对象
在新安装中禁用。
用户定义函数
在新安装中禁用。


选中“保持口令”复选框;

Reporting Services 功能默认值


“角色”栏保留为默认的“default”;

功能
默认设置
F1 帮助主题
Web 服务请求和 HTTP 访问
在新安装中启用。
预定的事件和报表传递
在新安装中启用。
Windows 集成安全性
在新安装中启用

 


在“主机名”栏中输入主机名或保留为localhost;


“端口”值保留为默认的1521;


“SID”栏中输入数据库的SID,如本数据库的系统标志为orcl。

设置完后单击“测试”按钮测试该设置能否连接,如果成功,则会在左下角状态后显示“成功”。

奥门威尼斯网址 2 

图2.18 
“新建/选择数据库连接”窗口

常见错误:若出现如图2.19所示的连接错误,则说明Oracle的服务没有开启。

奥门威尼斯网址 3 

图2.19出现了连接错误

多学两招:开启Oracle的服务的步骤如下。

(1)在桌面中的“计算机”的图标上右键单击,选择“管理”。

(2)在“计算机管理”界面中,单击“服务和应用程序”下的“服务”选项。

(3)在“服务”中找到与Oracle相关的服务,右键单击,选择“开启”,即可开启选中的服务,如图2.20所示。

奥门威尼斯网址 4 

图2.20开启Oracle服务

将以“Oracle”开头的服务全部开启,如图2.21所示。

奥门威尼斯网址 5 

图2.21 
全部开启的Oracle服务

(3)单击“保存”按钮,将测试成功的连接保存起来,以便日后使用。在主界面的连接节点下会出现一个名为system_ora的数据库连接,单击该连接前面的“+”会出现子目录,在子目录中显示的是可以操作的数据库对象,如图2.22所示,之后对Oracle数据库的所有操作都可以在该界面下完成。

奥门威尼斯网址 6 

图2.22 
新创建的数据库连接system_ora

注意:要想进行数据库连接,则必须打开数据库的监听服务(OracleOraDB12Home1THSListener)和数据库的主服务(OracleServiceMLDN)。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图