在sql
server
management
studio里
選中資料庫,右擊--任務--生成腳本。
在彈出窗口中,選擇下一步,
選中你要導出的數據,並勾選下面的復選框,
下一步,編寫觸發器腳本
設為true,
數據腳本設為true,
ansi填充選
false,
下一步,
選擇你要保存到文件,,完成即可
② 怎麼在sql server中執行腳本
1. 啟動SQL Server Management Studio;
點擊【開始】->【所有程序】->【Microsoft SQL Server 2008 R2】->【SQL Server Management Studio】,
伺服器名稱:伺服器的名稱或者IP地址,
登錄名和密碼:通常都為sa;
點擊【連接】後登錄SQL Server Management Studio;
2. 點擊【文件】->【打開】-->【文件(F)…】,
選擇你要打開的文件,如【Optime.Sql】,打開即可,
3. 選擇相應的資料庫,如gerp,
點擊即可。
③ sql server 怎麼捕捉sql語句
如果在Transact-SQL中發生了錯誤,一般有兩種捕捉錯誤的方法,一種是在客戶端代碼(如c#、delphi等)中使用類似try...catch的語句進行捕捉;另外一種就是在Transact-SQL中利用Transact-SQL本身提供的錯誤捕捉機制進行捕捉。如果是因為Transact-SQL語句的執行而產生的錯誤,如鍵值沖突,使用第一種和第二種方法都可以捕捉,但是如果是邏輯錯誤,使用客戶端代碼進行捕捉就不太方便。因此,本文就如何使用Transact-SQL進行錯誤捕捉進行了討論。
非致命錯誤(non-fatal error)的捕捉
通過執行Transact-SQL而產生的錯誤可分為兩種:致命錯誤(fatal error)和非致命錯誤(non-fatal error)。在Transact-SQL中只可以捕捉非致命錯誤(如鍵值沖突),而無法捕捉致命錯誤(如語法錯誤)。在Transact-SQL中可以通過系統變數@@ERROR判斷最近執行的一條語句是否成功執行。如果發生了錯誤,@@Error的值大於0,否則值為0。下面舉一個例子說明@@ERROR的使用。
假設有一個表table1,在這個表中有兩個欄位f1,f2。其中f1是主鍵。
INSERTINTOtable1VALUES(1,'aa')INSERTINTOtable1VALUES(1,'bb')--這條語句將產生一個錯誤IF@@ERROR0PRINT'鍵值沖突'當執行第二條語句時發生鍵值沖突錯誤,@@ERROR被賦為錯誤號2627,因此輸出結果顯示'鍵值沖突'。使用@@ERROR系統變數時需要注意,@@ERROR只記錄最近一次執行的Transact-SQL語句所發生的錯誤,如果最近一次執行的Transact-SQL沒有發生錯誤,@@ERROR的值為0。因此,只能在被捕捉的那條Transact-SQL語句後使用@@ERROR。
在SQL Server中,不僅可以捕捉系統提供的錯誤,還可以自定義錯誤。有兩種方法可以定義錯誤信息。
1. 使用sp_addmessage系統存儲過程添加錯誤信息,然後使用RAISERROR拋出錯誤。
sp_addmessage將錯誤號,錯誤級別、錯誤描述等信息添加到系統表中,然後使用RAISERROR根據相應的錯誤號拋出錯誤信息。用戶自定義的信息應該從50001開始。EXECsp_addmessage@msgnum=50001,
@severity=16,@msgtext='sql encounter an error(%s).',@lang='us_english'EXECsp_addmessage@msgnum=50001,
@severity=16,@msgtext='sql遇到了一個錯誤(%1!).'如果使用的SQL Server版本是非英語版本,在添加本地錯誤信息時必須首先添加英文的錯誤信息。錯誤描述可以象c語言中的printf的格式字元串一樣使用參數,如%s、%d。但要注意的是在英文版的錯誤信息中要使用%s、%d等形式,而在本地化的錯誤信息中要使用%1!、%2!等形式,在每個%?(1 <= ? <= n)後需要加一個!,而且%?的數目必須和英文版的錯誤信息的參數一致。
在未插入本地化錯誤信息時,RAISERROR將使用英文版的錯誤信息。當插入本地化錯誤信息時,RAISERROR使用本地化的錯誤信息。
RAISERROR(50001,16,1,'測試')
輸出的結果:
伺服器: 消息50001
,級別16
,狀態1
,行1sql遇到了一個錯誤(測試).
其中'測試'字元串通過%1傳入本地化的錯誤描述字元串中。
2. 直接使用RAISERROR將錯誤拋出。
使用第一種方法雖然使Transact-SQL語句看上去更整潔(這種方法類似於在編程語言中使用常量定義錯誤信息,然後在不同的地方通過錯誤編號引用這些錯誤信息。),但是這樣做卻使錯誤信息和資料庫的耦合度增加,因為如果將這些帶有RAISERROR的Transact-SQL放到別的SQL Server資料庫上執行,由於在其它的資料庫中還未添加錯誤信息,因此會產生RAISERROR調用錯誤,除非使用sp_addmessage將所需的錯誤信息再加入到其它的資料庫中。
基於上述原因,RAISERROR不僅可以根據錯誤代碼拋出錯誤信息,也可以直接通過錯誤描述格式字元串拋出錯誤信息。
④ 如何使用SQL資料庫的查詢分析器來執行SQL語句或SQL腳本文件
1、執行SQL語句:在1處輸入語句,點擊2運行
2、執行SQL腳本文件:點擊3選擇.SQL腳本文件,載入腳本,點擊2運行
⑤ 怎麼使用別人的SQL腳本
用PL/SQL在oracle下執行多個SQL腳本的方法:
PL/SQL developer----->File------>New---->command window
然後在彈出的窗口裡依次執行:SQL> @f:\abc\a.sql;SQL> @f:\abc\b.sql;SQL> @f:\abc\c.sql;
SQL*Plus 中執行多個*.sql腳本文件的方法:
1、在SQL*Plus中執行單個sql腳本文件: SQL>@c:\aaa.sql ;
2、在SQL*Plus中執行多個sql腳本文件: 比如你要執行得2個sql腳本 a.sql 和 b.sql 現在你重新寫一個腳本 c.sql 其中得內容如下 @@a.sql @@b.sql 然後把c.sql放在a.sql和 b.sql 得同一個目錄中即可,然後在sqlplus下執行:SQL>@c.sql 就可以了。
⑥ 用批處理執行SQL文件的腳本應該怎麼寫
步驟:(1) 創建一個批處理文件:打開記事本,創建資料庫連接信息(例如,server name,username,password,databasename等)以及要執行的*.sql腳本名稱。具體語法參考下文"osql 實用工具" 。 將文件的擴展名改為.bat 並保存。
示例1:指定待執行sql 文件的相對路徑
osql -S admin\admin -U sa -P sa -d TestDB -i c:\test.sql
pause
示例2: 待執行文件與bat文件在同一個目錄,指定相對路徑
set localdir=%~dp0
osql -S (local) -U sa -P sa -d Test -i %localdir%\test1.sql
osql -S (local) -U sa -P sa -d Test -i %localdir%\test2.sql
osql -S (local) -U sa -P sa -d Test -i %localdir%\test3.sql
pause
(2) 創建需要執行的sql 腳本, test.sql,test2.sql 和test3.sql, 並放在步驟(1)示例1中指定的位置。本例為c:\ 根目錄。如果用示例2,將待執行的sql和bat文件放在同一個目錄下。
(3) 雙擊*.bat 文件並查看運行結果。
⑦ 如何對SQL中的所有資料庫執行腳本
以sqlserver為例
首先創建一張表
createtabledatabase_info
(databasenamevarchar(50));
然後,將所有資料庫名的信息錄入到這張表中。這步可參考sqlserver中都有哪些資料庫。
然後,執行存儲過程:
declare@sqlnvarchar(4000),@iint,@maxdatabase
select@maxdatabase=count(*)fromdatabase_info
set@i=1
while@i<=@maxdatabase
begin
set@sql='update'
select@sql=sql+datebase_namefromdatabase_infowhereid=@i
select@sql=sql+'.master.dbo.tbl1settbl1.aaa=tbl2.bbbfrom'
select@sql=sql+datebase_namefromdatabase_infowhereid=@i
eselect@sql=sql+'.master.dbo.tbl2wheretbl1.ccc=tbl2.ccc'
execsp_executesql@sql
set@i=@i+1
end
注意事項:其中update語句,可根據自己的實際需要進行修改。