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幫助文檔,也沒說清楚這個函數應該怎麼用