⑴ 「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語句
sqlserver在運行時默認是沒有內存佔用限制的,除非你設置了sqlserver伺服器的內存使用數。在企業管理器伺服器的節點處右擊,選擇」屬性「,然後查看」內存「選項卡,將內存佔用設為無限制。同時,如果文件很大,需要足夠的日誌來記錄,資料庫的日誌文件大小可以暫時設置為無上限,之後再進行資料庫收縮。
如果上面的方法不奏效,那就把你的sql文件進行分割吧,分割成比較小的幾個部分,依次執行絕對沒問題
:)
⑶ sqlserver存儲過程怎麼調試
最近在做vb項目的時候,用到了存儲過程的調試,現在總結一下發現單步調試存儲過程有以下2種方法:
1.這種方法自己已經做過,是可以的,如下:
a.如果目標資料庫存在存儲過程,右擊該存儲過程-修改,打開存儲過程,並在需要的地方設置斷點。(如果沒有自定義存儲過程,則需要在Sql Server 2012資料庫中創建存儲過程,完成後在裡面設置斷點);
b.另外開啟一個新建查詢窗口,寫入調用代碼:例如 exec BillManageInputProc '主單1','0111111','0111112','121','legend','2014-09-24','001','2014-09-24','1','市場部','0' ,單擊 調試按鈕 啟動存儲過程的調試;
c.單擊 F 11 進行逐句調試。
2.在vs2010調試存儲過程步驟如下:
首先,打開vs,點擊 視圖-->伺服器資源管理器
http://www.cnblogs.com/caishiquan/p/4050237.html
⑷ 如何用SQLserver批量打開或運行腳本
使用SQLCMD在SQLServer上執行多個腳本
第一步:先創建一個在C盤下的文件夾:C:\Scripts。然後把腳本存放到這個文件夾中:
腳本1:CREATE_DB.sql
/* SCRIPT: CREATE_DB.sql */
/* 創建TestDB資料庫 */
-- This is the main caller for each script
SET NOCOUNT ON
GO
PRINT '開始創建TestDB資料庫'
IF EXISTS (SELECT 1 FROM SYS.DATABASES WHERE NAME = 'TestDB')
DROP DATABASE TestDB
GO
CREATE DATABASE TestDB
GO
:On Error exit
:r c:\Scripts\CREATE_TABLES.sql
:r c:\Scripts\TABLE_INSERTS.sql
:r c:\Scripts\CREATE_INDEXES.sql
:r c:\Scripts\CREATE_PROCEDURES.sql
PRINT '創建完畢'
GO
⑸ sqlserver怎麼執行.sql文件
可以在cmd窗口中執行如下命令執行Sql文件:
osql
-S
127.0.0.1
-U
sa
-P
sa
-i
d:\test.sql
簡單說明:osql為SQL
Server的命令,要在cmd中執行該命令,一般安裝完SQL
Server後該命令對應的路徑會自動添加到
系統環境
變數中。
-S
表示要連接的
資料庫伺服器
-U表示登錄的用戶ID,-P表示登錄密碼
-i表示要執行的
腳本文件
路徑。
⑹ sqlserver 執行一段腳本報錯,逐句執行就能成功,怎麼回事
update 前那一句 增加欄位的 請comiit;
⑺ sqlserver查看當前運行哪些sql 語句
有二種方式來查看正在執行的SQL語句
使用SQL自帶的SQL Server Profiler,以可視化界面的方式來查看。
從開始=》所有程序=》Microsoft SQL Server 2008=》性能工具打開Profiler工具,也可以打開SQL Server Management Studio=》工具=》SQL Server Profiler。
然後選擇文件=》新建=》跟蹤打開一個連接窗口,選擇將要跟蹤的伺服器實例然後連接,並打開「跟蹤屬性」對話框,點運行即可看到正在執行的SQL語句。
使用SQL語句來查看正在運行的語句,如下
SELECT [Spid] = session_id ,
ecid ,
[Database] = DB_NAME(sp.dbid) ,
[User] = nt_username ,
[Status] = er.status ,
[Wait] = wait_type ,
[Indivial Query] = SUBSTRING(qt.text,
er.statement_start_offset / 2,
( CASE WHEN er.statement_end_offset = -1
THEN LEN(CONVERT(NVARCHAR(MAX), qt.text))
* 2
ELSE er.statement_end_offset
END - er.statement_start_offset )
/ 2) ,
[Parent Query] = qt.text ,
Program = program_name ,
hostname ,
nt_domain ,
start_time
FROM sys.dm_exec_requests er
INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS qt
WHERE session_id > 50 -- Ignore system spids.
AND session_id NOT IN ( @@SPID ) -- Ignore this current statement.
ORDER BY 1 ,
⑻ jdbc連接資料庫sqlserver後怎麼執行sql語句
首先確保SQLSERVER服務正在運行,並可以允許遠程訪問連接
然後按如下步驟進行連接
1.安裝JDBC驅動
1)下載JDBC驅動
http://www.microsoft.com/zh-cn/download/details.aspx?id=11774
2)執行sqljdbc_4.0.2206.100_chs.exe解壓驅動文件
3)拷貝以下目錄中的sqljdbc_auth.dll到Windows的System32目錄。對x64的機子,x64的dll拷到C:\Windows\System32,x86的dll拷到C:\Windows\SysWOW64目錄。
Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\auth\
2.在Java程序中連接SQL Server
classpath中加上安裝好的SQL Server jdbc jar包
Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\sqljdbc4.jar
連接SQL Server的JDBC代碼
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:54364;databaseName=master;IntegratedSecurity=True";
Connection con = DriverManager.getConnection(url);
在SQL Server Browser服務開啟的情況下也可以通過服務名連接
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=master;IntegratedSecurity=True";
Connection con = DriverManager.getConnection(url);
3.身份驗證模式
SQL Server默認使用Windows身份驗證模式,這也是官方推薦的模式,安全性更高。上面的連接例子就是採用的Windows認證。如果要使用混合認證模式,需要下載SQL Server Management Studio,並通過SQL Server Management Studio修改認證模式為混合認證模式。
SQL Server Management Studio的下載地址
http://www.microsoft.com/zh-cn/download/details.aspx?id=8961
修改SQL Server認證模式的方法
http://technet.microsoft.com/zh-cn/library/ms188670(v=sql.105).aspx
混合認證模式下,可以由資料庫進行認證,連接時需要提供用戶名和密碼
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:54364;databaseName=master";
Connection con = DriverManager.getConnection(url,"user","password");
⑼ sqlserver怎麼執行.sql文件
可以在cmd窗口中執行如下命令執行Sql文件:
osql -S 127.0.0.1 -U sa -P sa -i d:\test.sql
簡單說明:osql為SQL Server的命令,要在cmd中執行該命令,一般安裝完SQL
Server後該命令對應的路徑會自動添加到系統環境變數中。 -S 表示要連接的資料庫伺服器 -U表示登錄的用戶ID,-P表示登錄密碼
-i表示要執行的腳本文件路徑。
⑽ sqlserver怎麼循環
打開sql server management studio管理工具,點擊【新建查詢】菜單按鈕,就會出現一個空白的窗口,這個窗口是用來寫sql語句的,本文所有的演示sql語句都在這個窗口完成