GVKun编程网logo

SQLServer:如何生成数据库的脚本(sql server生成数据库脚本)

9

最近很多小伙伴都在问SQLServer:如何生成数据库的脚本和sqlserver生成数据库脚本这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展EFCodeFirst生成数据库到Sq

最近很多小伙伴都在问SQLServer:如何生成数据库的脚本sql server生成数据库脚本这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展EF CodeFirst生成数据库到Sqlserver中、Linux下定时自动备份Docker中所有SqlServer数据库的脚本、mysql-MySQL数据库能转换成SQLServer吗?我有一个MySQL的脚本文件怎么才能在SQLServer里操作、php使用sql server验证连接数据库的方法,sqlserver等相关知识,下面开始了哦!

本文目录一览:

SQLServer:如何生成数据库的脚本(sql server生成数据库脚本)

SQLServer:如何生成数据库的脚本(sql server生成数据库脚本)

三种方式:

1、编程方式实现;

--功能强大,但要求有编程基础,没有相关的技术文档。

--适合:表、索引等无法通过其它方法批量生成的对象。

2、利用系统视图实现;

--获取非常方便,但只能获取到  标量函数、表值函数、存储过程、触发器、视图  这几种对象,其它对象无法获取。

3、数据库手动操作生成脚本;

--较为方便, 但失去了自动化和可编程。


第一种:

1. 引用sql Server自带的dll文件, 比如我本机(sql Server2014)在:

D:\Program Files (x86)\Microsoft sql Server\120\SDK\Assemblies

Microsoft.sqlServer.ConnectionInfo.dll

Microsoft.sqlServer.Management.Sdk.Sfc.dll

Microsoft.sqlServer.Smo.dll

Microsoft.sqlServer.sqlEnum.dll (不深入可不用)

2. 类似的文章很多, 就不写demo了, 参考文章:

http://www.cnblogs.com/jinzhenshui/archive/2012/04/18/2455210.html 

http://www.cnblogs.com/kkun/archive/2009/07/01/1514640.html


第二种:

--标量函数、表值函数、存储过程、触发器、视图(包含系统对象)
SELECT * FROM sys.all_sql_modules
--标量函数、表值函数、存储过程、触发器、视图
SELECT * FROM sys.sql_modules
--查询微软示例库(AdventureWorks2014)中能够生成脚本的对象类型
SELECT type_desc,type FROM sys.objects AS o WHERE o.[object_id] IN (
	SELECT sys.sql_modules.[object_id] FROM sys.sql_modules
)
GROUP BY TYPE,o.type_desc
ORDER BY o.type_desc
/*
type_desc	                type
sql_SCALAR_FUNCTION	        FN
sql_STORED_PROCEDURE	        P 
sql_TABLE_VALUED_FUNCTION	TF
sql_TRIGGER	                TR
VIEW	                        V  
*/


第三种:




EF CodeFirst生成数据库到Sqlserver中

EF CodeFirst生成数据库到Sqlserver中

EF CodeFirst简单实例 这篇文章介绍了如何用EF去快速生成数据库。但是这个并没有生成到sqlserver中,总觉得不爽。下面就来讲一下,如何将数据库生成到sqlserver中。 按照EF CodeFirst简单实例中介绍的一步一步走,只是最后呢,需要在配置文件中加入connectio

ef codefirst简单实例
这篇文章介绍了如何用ef去快速生成数据库。但是这个并没有生成到sqlserver中,总觉得不爽。下面就来讲一下,如何将数据库生成到sqlserver中。

按照EF CodeFirst简单实例中介绍的一步一步走,只是最后呢,需要在配置文件中加入connectionStrings的配置节即可。

配置文件如下:

<span></span><span>xml version="1.0" encoding="utf-8"</span><span>?&gt;</span>
<span><span>configuration</span><span>&gt;</span>
  <span><span>configdivs</span><span>&gt;</span>
    <span><!--</span><span> For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 </span><span>--></span>
    <span><span>div </span><span>name</span><span>="entityFramework"</span><span> type</span><span>="System.Data.Entity.Internal.ConfigFile.EntityFrameworkdiv, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"</span><span> requirePermission</span><span>="false"</span> <span>/&gt;</span>
  <span></span><span>configdivs</span><span>&gt;</span>
  <span><span>startup</span><span>&gt;</span>
    <span><span>supportedRuntime </span><span>version</span><span>="v4.0"</span><span> sku</span><span>=".NETFramework,Version=v4.5"</span> <span>/&gt;</span>
  <span></span><span>startup</span><span>&gt;</span>
  <span><span>entityFramework</span><span>&gt;</span>
    <span><span>defaultConnectionFactory </span><span>type</span><span>="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"</span> <span>/&gt;</span>
    <span><span>providers</span><span>&gt;</span>
      <span><span>provider </span><span>invariantName</span><span>="System.Data.SqlClient"</span><span> type</span><span>="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"</span> <span>/&gt;</span>
    <span></span><span>providers</span><span>&gt;</span>
  <span></span><span>entityFramework</span><span>&gt;</span>

  <span><span>connectionStrings</span><span>&gt;</span>
    <span><!--</span><span>Data Source=.;Initial Catalog=GuestBook;Integrated Security=True</span><span>--></span>
    <span><span>add </span><span>name</span><span>="WeiXinDB1"</span><span> connectionString</span><span>="Data Source=.;Initial Catalog= MyDb22;Integrated Security=True"</span><span> providerName</span><span>="System.Data.SqlClient"</span> <span>/&gt;</span>
  <span></span><span>connectionStrings</span><span>&gt;</span>
  
<span></span><span>configuration</span><span>&gt;</span></span></span></span></span></span></span></span></span></span></span></span>
登录后复制

下面是说明:

EF CodeFirst生成数据库到Sqlserver中

 

注意:如果你用EF CodeFirst简单实例生成好了之后,并且已经生成过数据库了,那么你再加connectionStrings配置节就没有效果了(不能生成数据库到Sqlserver中)。在这种情况下,需要做如下事情才能将数据库加入数据库中:

先删除引用中的entityFramework,与EntityFramework.SqlServer。然后再重新引用(安装了EntityFramework之后就会有这两个dll)。之后编译即可。

Linux下定时自动备份Docker中所有SqlServer数据库的脚本

Linux下定时自动备份Docker中所有SqlServer数据库的脚本

准备工作

  • 一台Linux(Centos7为例)服务器。
  • 安装Docker服务。
  • 安装并启动SqlServer容器服务。

编写Shell文件

给出一个备份的范例

#!/bin/bash
#设置mssql备份目录
folder=/var/opt/mssql/data/databack/
day=`date +%Y%m%d%H%M%S`
#数据库服务器,一般为localhost
host=localhost
#用户名
user=sa
#密码
password=''********''
# 容器名称
containerId=''sqlserver''

# 循环获取数据库名称
for line in $(docker exec $containerId /opt/mssql-tools/bin/sqlcmd \
   -S $host -U $user -P $password \
   -Q "select [name] from master.dbo.SysDatabases where [dbid] > 4")
do
    # 判断是否是数据库名称
    if [[ $line =~ ^[a-zA-Z0-9_]+$ && $line != ''name'' && $line != ''rows'' ]]; then
        echo "数据库 $line 开始备份"
        docker exec $containerId /opt/mssql-tools/bin/sqlcmd \
        -S $host -U $user -P $password \
        -Q "BACKUP DATABASE [$line] TO DISK = N''$folder$line/$line$day.bak'' WITH NOFORMAT, NOINIT, NAME = N''$line Backup $day'', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
    fi
done

在Linux添加定时任务

添加定时任务需要使用到Linux的crontab服务。我们可以通过下列命令来检测并安装这个服务。

# 检查crontab工具是否安装
crontab -l
# 检查crond服务是否启动
service crond status

# 如果未安装服务我们需要进行安装
yum install vixie-cron
yum install crontabs

再确认安装完成后我们使用命令 crontab -e 打开crontab的编辑功能,添加如下示例:

# 定时任务 每日0点备份
# 注意别忘记 sh 命令
0 0 * * * sh /root/databack/sqlServerBackup.sh

添加完成后可以使用命令(systemctl restart crond),重启下crond服务确保服务能正常运行。

crontab格式介绍

参考生成工具 https://tool.lu/crontab/
格式: * * * * * comand(*以空格或tab隔开)

  • 第一个* : 分钟(0--59)
  • 第二个* : 小时(0--23)
  • 第三个* : 日期(0--31)
  • 第四个* : 月份(1--12)
  • 第五个* : 星期0--7(0或者7表示星期天)
  • comand : 要执行的操作

举例:

  • 每晚21:30重启apache: 30 21 * * * service httpd restart
  • 每月1、10、22日的4:45重启apache : 45 4 1,10,22 * * service httpd restart
  • 每月1到10日的4:45重启apache : 45 4 1-10 * * service httpd restart
  • 每隔两分钟重启apache : */2 * * * * service httpd restart 或者 1-59/2 * * * * service httpd restart
  • 每晚11点到早上7点间,每隔1小时重启apache : 0 23-7/1 * * * service httpd restart
  • 每晚18:00至23:00,每隔30分钟重启apache : 0,30 18-23 * * * service httpd restart 或 0-59/30 18-23 * * * service httpd restart

到此这篇关于Linux下定时自动备份Docker中所有SqlServer数据库 的文章就介绍到这了,更多相关Docker SqlServer定时自动备份内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • Docker容器定时备份数据库并发送到指定邮箱(设计思路)
  • Docker MySQL每天定时自动备份的实现方法

mysql-MySQL数据库能转换成SQLServer吗?我有一个MySQL的脚本文件怎么才能在SQLServer里操作

mysql-MySQL数据库能转换成SQLServer吗?我有一个MySQL的脚本文件怎么才能在SQLServer里操作

mysql

mysql数据库能转换成sqlserver吗?我有一个mysql的脚本文件怎么才能在sqlserver里操作

回复内容:

MySQL 全库导出,修改 一些建表语句就可了,任何数据库都可以处理

可以把mysql脚本导入mysql我数据库。然后再mysqldump只导出数据到csv等。然后再导入文件进SqlServer

php使用sql server验证连接数据库的方法,sqlserver

php使用sql server验证连接数据库的方法,sqlserver

php使用sql server验证连接数据库的方法,sqlserver

本文实例讲述了php使用sql server验证连接数据库的方法。分享给大家供大家参考。具体分析如下:

当您连接到 SQL Server 时,SQL Server Driver for PHP 支持 SQL Server 身份验证,在使用 SQL Server 身份验证连接到 SQL Server 时必须考虑以下几点.

必须对服务器启用 SQL Server 混合模式身份验证,在尝试建立连接时必须设置 UID 和 PWD 连接属性,UID 和 PWD 必须映射到有效的 SQL Server 用户和密码.

注意:包含右大括号 (}) 的密码必须使用另一个右大括号进行转义,例如,如果 SQL Server 密码为“pass}word”,则 PWD 连接属性的值必须设置为“pass}}word”.

在使用 SQL Server 身份验证连接到 SQL Server 时应采取以下预防措施,下面看一个简单的实例,代码如下:

复制代码 代码如下:

$serverName = "(local)";
$uid = ''xxxx'';
$pwd = ''xxxx'';
$connectionInfo = array( "UID"=>$uid,
                         "PWD"=>$pwd,
                         "Database"=>"AdventureWorks");
 
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
     echo "无法连接数据库.";
     die( print_r( sqlsrv_errors(), true));
}
 
$tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
     echo "查询错误.";
     die( print_r( sqlsrv_errors(), true));
}
 
$row = sqlsrv_fetch_array($stmt);
echo "登录的用户: ".$row[0];
 
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>

希望本文所述对大家的php程序设计有所帮助。

立即学习“PHP免费学习笔记(深入)”;

今天关于SQLServer:如何生成数据库的脚本sql server生成数据库脚本的介绍到此结束,谢谢您的阅读,有关EF CodeFirst生成数据库到Sqlserver中、Linux下定时自动备份Docker中所有SqlServer数据库的脚本、mysql-MySQL数据库能转换成SQLServer吗?我有一个MySQL的脚本文件怎么才能在SQLServer里操作、php使用sql server验证连接数据库的方法,sqlserver等更多相关知识的信息可以在本站进行查询。

本文标签: