sqlserverexecute
‘壹’ “sqlserver”怎样直接执行sql文件
一、客户的数据库数据被篡改,利用Log Explorer工具根据日志生成的回滚脚本有200多M,不可能一下子扔到查询分析器里去执行,于是想是否SQL Server是否可以像Oracle那样直接执行.sql文件。讲过查资料,测试,发现可以在cmd窗口中执行如下命令执行Sql文件:
二、osql -S 127.0.0.1 -U sa -P sa -i d: est.sql;
三、简单说明:osql为SQL Server的命令,要在cmd中执行该命令,一般安装完SQL Server后该命令对应的路径会自动添加到系统环境变量中。 -S 表示要连接的数据库服务器 -U表示登录的用户ID,-P表示登录密码 -i表示要执行的脚本文件路径。
四、Apache ant提供了直接执行sql脚本文件的功能:
五、Java代码:
publicclassAntExecSql
{publicstaticvoidexecSqlFile(Stringurl,StringuserID,Stringpwd,StringsqlFile)
{
SQLExec2sqlExec=newSQLExec2();
//设置数据库参数
sqlExec.setDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver");
sqlExec.setUrl(url);
sqlExec.setUserid(userID);
sqlExec.setPassword(pwd);
Filefile=newFile(sqlFile);
sqlExec.setSrc(file);
sqlExec.setPrint(true);//设置是否输出
//输出到文件sql.out中;不设置该属性,默认输出到控制台
//sqlExec.setOutput(newFile("d:/script/sql.out"));
sqlExec.setProject(newProject());//要指定这个属性,不然会出错
sqlExec.execute();
}
publicstaticvoidmain(String[]args){
Stringfile1="C:/1.sql";
Stringurl="jdbc:sqlserver://localhost:1433;database=master";
Stringusername="sa";
Stringpwd="sa@jiaj";
try{
AntExecSql.execSqlFile(url,username,pwd,file1);
}catch(Exceptionex){
ex.printStackTrace();
}
}
}
‘贰’ 问一个sqlserver的问题
问题很可能出在sql里面,你需要把组出的sql字符串检查一下,看里面有没有没有过滤掉的非法字符,如:输入的字符串中含有单引号等等。
‘叁’ SQLSERVER EXEC参数的问题
其实就是对同名称的存储过程加一个区分,但是又可以使用同一个名称来删除。
形象的说就是一个存储过程有两个版本。
‘肆’ 简单MS SQLSERVER 2000中用户自定义函数中的Execute问题!
wen_huang(黄志文)。非常感谢你。我仔细阅读了SQL
Server的帮助文档,在Function中使用Exec只可以执行扩展存储过程,所以我的方法行不通。你的方法非常好,谢谢。
另外,请你在下面两张贴子上答复一下,让得分有主。:-)
http://www.csdn.net/expert/topic/343/343383.shtm
http://www.csdn.net/expert/topic/343/343382.shtm
‘伍’ SQLServer动态exec查询语句,返回查询变量
drop procere tempPro;
go
create procere tempPro
as
declare
@sql nvarchar(200),
@user nvarchar(500),
@tablename nvarchar(100)
begin
set @tablename='t_stars'
set @sql=N'select @userOUT = stars_name from '+@tablename+' where stars_id=''hk1006''';
execute sp_executesql @sql, N'@userOUT varchar(30) output', @userOUT=@user output;
print @user;
end
go
exec tempPro;
‘陆’ sqlserver 中 sp_execute 求助
从你的语句来看,你应该是想用扩展存储过程的执行方法执行你的拼接语句
你应该用:sp_executesql,而不是:sp_execute,你可以搜索一些这两个语句的区别。
我在sql帮助文档中搜索了一下sp_execute,它必须要输入一个int的handle值,提示和你的报错很像。
说实话,我没用过sp_execute,而且这个sql帮助文档,也没说清楚这个函数应该怎么用