在本文中,我们将为您详细介绍使用java生成备份sqlserver数据表的insert语句的相关知识,此外,我们还会提供一些关于ASP备份SQLServer数据库改进版、bat脚本备份SQLServe
在本文中,我们将为您详细介绍使用java生成备份sqlserver数据表的insert语句的相关知识,此外,我们还会提供一些关于ASP备份SQL Server数据库改进版、bat脚本备份SQL Server 数据库 - cmd命令备份SQL Server 数据库、SQL SERVER 向表中插入多行数据的insert语句、sql server2005数据库 导出insert语句的有用信息。
本文目录一览:- 使用java生成备份sqlserver数据表的insert语句
- ASP备份SQL Server数据库改进版
- bat脚本备份SQL Server 数据库 - cmd命令备份SQL Server 数据库
- SQL SERVER 向表中插入多行数据的insert语句
- sql server2005数据库 导出insert语句
使用java生成备份sqlserver数据表的insert语句
针对sqlserver数据表的备份工具很多,有时候条件限制需要我们自己生成insert语句,以便后期直接执行这些插入语句。下面提供了一个简单的思路,针对mysql或oracle有兴趣的以后可以试着修改。
public class GenInsertSql {
private static Connection conn =null;
private static Statement sm=null;
private static String schema="dbo";//模式名
private static String select="SELECT * FROM";//查询sql(针对一个表的时候,可以将*换成相应的列名)
private static String where="WHERE 1=1 ";//where子句(慎用,最好针对一个表的时候用,注意修改createSQL方法)
private static String insert="INSERT INTO";//插入sql
private static String values="VALUES";//values关键字
private static List <String> insertList=new ArrayList <String>();//全局insertsql文件的数据
//存储路径
private static String sqlfilePath ="D:/platform/new/backinsertsql/";//绝对路径,还未到最后一层
private static String xmname = "xxx";// 哪个项目
private static Boolean isOneFile = false; //是否写到一个文件中取,如果为true,将写到filePath中,否则写到singleFilePath+表名中
private static String filePath = sqlfilePath+xmname+"/1.txt";
private static String singleFilePath = sqlfilePath+xmname;
//备份哪些表
private static String [] table={"BA_CK_KCPD","SA_RY_GROUP"};//table数组 ,后期可以修改成list
// 数据库连
private static final String URL = "jdbc:jtds:sqlserver://11.11.11.11:1433;databaseName=xxx";
private static final String NAME = "sa";
private static final String PASS = "111111";
private static final String DRIVER = "net.sourceforge.jtds.jdbc.Driver";
/**
* 导出数据库表
* @param args
* @throws SQLException
*/
//所有sql写到一个文件中
private static void createFile() {
File file= new File( filePath );
if (!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
System. out .println( " 创建文件名失败!! " );
e.printStackTrace();
}
}
FileWriter fw= null ;
BufferedWriter bw= null ;
try {
fw = new FileWriter(file);
bw = new BufferedWriter(fw);
if ( insertList .size()>0){
for ( int i=0;i< insertList .size();i++){
bw.append( insertList .get(i));
bw.append( "\n" );
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//sql分别写到对应表名的文件中
private static void createFile(String filename,List <String> insertSqls) {
File file= new File( singleFilePath+"/"+filename+".txt" );
if (!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
System. out .println( " 创建文件名失败!! " );
e.printStackTrace();
}
}
FileWriter fw= null ;
BufferedWriter bw= null ;
try {
fw = new FileWriter(file);
bw = new BufferedWriter(fw);
if ( insertSqls .size()>0){
for ( int i=0;i< insertSqls .size();i++){
bw.append( insertSqls .get(i));
bw.append( "\n" );
}
}
insertList.clear();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 拼装查询语句
* @return 返回select 集合
*/
private static List<String> createSQL() {
List<String> listSQL= new ArrayList<String>();
for ( int i=0;i< table . length ;i++){
StringBuffer sb= new StringBuffer();
sb.append( select ).append( " " ).append( schema ).append( "." ).append( table [i]) ; // .append( " " ).append(where)
listSQL.add(sb.toString());
}
return listSQL;
}
/**
* 连接数据库创建statement 对象
* @param driver
* @param url
* @param UserName
* @param Password
*/
public static void connectSQL(String driver,String url,String UserName,String Password){
try {
Class. forName (driver).newInstance();
conn = DriverManager. getConnection (url, UserName, Password);
sm=conn .createStatement();
} catch (Exception e){
e.printStackTrace();
}
}
/**
* 执行sql 并返回插入sql
* @param conn
* @param sm
* @param listSQL
* @throws SQLException
*/
@SuppressWarnings({ "unused", "rawtypes" })
public static void executeSQL(Connection conn,Statement sm,List listSQL)throws SQLException{
List<String> insertSQL= new ArrayList<String>();
ResultSet rs= null ;
try {
rs = getColumnNameAndColumeValue (sm, listSQL, rs);
} catch (SQLException e) {
e.printStackTrace();
} finally {
rs.close();
sm.close();
conn.close();
}
}
/**
* 获取列名和列值
* @param sm
* @param listSQL
* @param rs
* @return
* @throws SQLException
*/
@SuppressWarnings("rawtypes")
private static ResultSet getColumnNameAndColumeValue(Statement sm,List listSQL, ResultSet rs) throws SQLException {
for (int j = 0; j < listSQL.size(); j++) {
String sql = String.valueOf(listSQL.get(j));
rs = sm.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
while (rs.next()) {
StringBuffer ColumnName = new StringBuffer();
StringBuffer ColumnValue = new StringBuffer();
for (int i = 1; i <= columnCount; i++) {
String value = rs.getString(i);
if (i == columnCount) {
ColumnName.append(rsmd.getColumnName(i));
if (Types.CHAR == rsmd.getColumnType(i) || Types.VARCHAR == rsmd.getColumnType(i)
|| Types.LONGVARCHAR == rsmd.getColumnType(i)) {
if (value == null) {
ColumnValue.append("null");
} else {
ColumnValue.append("''").append(value).append("''");
}
} else if (Types.SMALLINT == rsmd.getColumnType(i) || Types.INTEGER == rsmd.getColumnType(i)
|| Types.BIGINT == rsmd.getColumnType(i) || Types.FLOAT == rsmd.getColumnType(i)
|| Types.DOUBLE == rsmd.getColumnType(i) || Types.NUMERIC == rsmd.getColumnType(i)
|| Types.DECIMAL == rsmd.getColumnType(i)) {
if (value == null) {
ColumnValue.append("null");
} else {
ColumnValue.append(value);
}
} else if (Types.DATE == rsmd.getColumnType(i) || Types.TIME == rsmd.getColumnType(i)
|| Types.TIMESTAMP == rsmd.getColumnType(i)) {
if (value == null) {
ColumnValue.append("null");
} else {
// ColumnValue.append("timestamp''").append(value).append("''"); //对于mysql可能需要timestamp,未测试
ColumnValue.append("''").append(value).append("''"); //对于sqlserver来说去掉timestamp
}
} else {
if (value == null) {
ColumnValue.append("null");
} else {
ColumnValue.append(value);
}
}
} else {
ColumnName.append(rsmd.getColumnName(i) + ",");
if (Types.CHAR == rsmd.getColumnType(i) || Types.VARCHAR == rsmd.getColumnType(i)
|| Types.LONGVARCHAR == rsmd.getColumnType(i)) {
if (value == null) {
ColumnValue.append("null,");
} else {
ColumnValue.append("''").append(value).append("'',");
}
} else if (Types.SMALLINT == rsmd.getColumnType(i) || Types.INTEGER == rsmd.getColumnType(i)
|| Types.BIGINT == rsmd.getColumnType(i) || Types.FLOAT == rsmd.getColumnType(i)
|| Types.DOUBLE == rsmd.getColumnType(i) || Types.NUMERIC == rsmd.getColumnType(i)
|| Types.DECIMAL == rsmd.getColumnType(i)) {
if (value == null) {
ColumnValue.append("null,");
} else {
ColumnValue.append(value).append(",");
}
} else if (Types.DATE == rsmd.getColumnType(i) || Types.TIME == rsmd.getColumnType(i)
|| Types.TIMESTAMP == rsmd.getColumnType(i)) {
if (value == null) {
ColumnValue.append("null,");
} else {
// ColumnValue.append("timestamp''").append(value).append("'',"); //对于mysql可能需要timestamp,未测试
ColumnValue.append("''").append(value).append("'',"); //对于sqlserver来说去掉timestamp
}
} else {
if (value == null) {
ColumnValue.append("null,");
} else {
ColumnValue.append(value).append(",");
}
}
}
}
insertSQL( ColumnName, ColumnValue,j,rs.isLast());//j表示当前正在处理的表的顺序
}
}
return rs;
}
/**
* 拼装insertsql 放到全局list 里面
* @param ColumnName
* @param ColumnValue
*/
private static void insertSQL(StringBuffer ColumnName,StringBuffer ColumnValue,int order,Boolean isLast) {
StringBuffer insertSQL= new StringBuffer();
insertSQL.append( insert ).append( " " ).append( schema ).append( "." )
.append( table [order]).append( " (" ).append(ColumnName.toString())
.append( ") " ).append( values ).append( " (" ).append(ColumnValue.toString()).append( ");" );
if(isOneFile){
insertList .add(insertSQL.toString());
if(order ==table.length -1 ) createFile(); //最后一个表完成时,创建文件
}else {
insertList .add(insertSQL.toString());
if(isLast){
createFile(table [order],insertList);
}
}
}
//入口
public static void executeSelectSQLFile() throws Exception {
List<String> listSQL= new ArrayList<String>();
connectSQL ( DRIVER , URL , NAME ,PASS ); // 连接数据库
listSQL= createSQL (); // 创建查询语句
executeSQL ( conn , sm,listSQL); // 执行sql 并拼装
System.out.println("^^^^^^^^^^^^^^^^^^^^^^创建完毕!");
}
public static void main(String[] args) throws Exception {
executeSelectSQLFile();
}
}
直接运行,即可生成txt文件,里面是insert语句。预览一下:
代码比较长,但逻辑还算清晰。原文作者已经不知道是谁了,在这里表示感谢!
ASP备份SQL Server数据库改进版
<form method="post" name="myform" action="?action=backupdatabase">
选择操作:<INPUT TYPE="radio" NAME="act" id="act_backup"value="backup"><label for=act_backup>备份</label>
<INPUT TYPE="radio" NAME="act" id="act_restore" value="restore"><label for=act_restore>恢复</label>
<br>数据库名:<INPUT TYPE="text" NAME="databasename" value="<%=request("databasename")%>">
<br>文件路径:<INPUT TYPE="text" NAME="bak_file" value="c:\$1.bak">(备份或恢复的文件路径)<br>
<input type="submit" value="确定" id=submit1 name=submit1>
</form>
<%
''SQL Server 数据库的备份与恢复!
if request("action")="backupdatabase" Then
dim sqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act
sqlserver = "localhost"
sqlname = "sa"
sqlpassword ="password"
sqlLoginTimeout = 15
databasename = trim(request("databasename"))
bak_file = trim(request("bak_file"))
bak_file = replace(bak_file,"$1",databasename)
act = lcase(request("act"))
if databasename = "" then
response.write "input database name"
else
if act = "backup" then
Set srv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = sqlLoginTimeout
srv.Connect sqlserver,sqlname, sqlpassword
Set bak = Server.CreateObject("SQLDMO.Backup")
bak.Database=databasename
bak.Devices=Files
bak.Action = 0
bak.Initialize = 1
''bak.Replace = True
bak.Files=bak_file
bak.SQLBackup srv
if err.number>0 then
response.write err.number&"<font color=red><br>"
response.write err.description&"</font>"
end if
Response.write "<font color=green>备份成功!</font>"
elseif act="restore" then
''恢复时要在没有使用数据库时进行!
Set srv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = sqlLoginTimeout
srv.Connect sqlserver,sqlname, sqlpassword
Set rest=Server.CreateObject("SQLDMO.Restore")
rest.Action=0 '' full db restore
rest.Database=databasename
rest.Devices=Files
rest.Files=bak_file
rest.ReplaceDatabase=True ''Force restore over existing database
if err.number>0 then
response.write err.number&"<font color=red><br>"
response.write err.description&"</font>"
end if
rest.SQLRestore srv
Response.write "<font color=green>恢复成功!</font>"
else
Response.write "<font color=red>没有选择操作</font>"
end if
end if
end if
%>
- PHP的ASP防火墙
- asp 在线备份与恢复sqlserver数据库的代码
- sql server中批量插入与更新两种解决方案分享(asp.net)
- SQL Server LocalDB 在 ASP.NET中的应用介绍
- ASP 连接 SQL SERVER 2008的方法
- ASP通过ODBC连接SQL Server 2008数据库的方法
- ASP语言实现对SQL SERVER数据库的操作
- ASP和SQL Server如何构建网页防火墙
bat脚本备份SQL Server 数据库 - cmd命令备份SQL Server 数据库
bat脚本备份SQL Server 数据库 - cmd命令备份SQL Server 数据库
如何用命令或者脚本来备份 SQL Server 备份数据库。
实现方法
通过bat脚本或者cmd命令来执行sql脚本实现备份;
开始
mybackup.sql
脚本内容如下
BACKUP DATABASE [database_name]
TO DISK=''E:\DataBaseBAK\database_name.bak''
解释
database_name
需要备份的数据库名称;
E:\DataBaseBAK\database_name.bak
数据库备份位置;
编辑打开,填入如下命令
sqlcmd -S 127.0.0.1 -U sa -P 123 -i E:\DataBaseBAK\mybackup.sql
解释
127.0.0.1
数据库服务器IP;
sa
数据库用户名
123
sa用户密码;
E:\DataBaseBAK\mybackup.sql
mybackup.sql 脚本位置;
以上。
SQL SERVER 向表中插入多行数据的insert语句
感兴趣的小伙伴,下面一起跟随小编 jb51.cc的小编两巴掌来看看吧!
下面把在sql吧里一位高手的解决方法,公布下。供大家参考:
假设有个表有 学号、姓名、学校 这三列
然后向这个表中插入
040501 孙明 山东大学
040502 李浩 山东师范
040503 王刚 烟台大学
怎么插入这三行数据啊~~~~~~~
代码如下:
insert 表名
select '040504','孙明','山东大学' union
select '040502','李浩','山东师范' union
select '040503','王刚','烟台大学'
sql server2005数据库 导出insert语句
同志们,如何将sql server2005数据库,表中数据导出insert语句,有什么好的工具推荐下,谢谢!我们今天的关于使用java生成备份sqlserver数据表的insert语句的分享就到这里,谢谢您的阅读,如果想了解更多关于ASP备份SQL Server数据库改进版、bat脚本备份SQL Server 数据库 - cmd命令备份SQL Server 数据库、SQL SERVER 向表中插入多行数据的insert语句、sql server2005数据库 导出insert语句的相关信息,可以在本站进行搜索。
本文标签: