當前位置:首頁 » 編程語言 » 有什麼方法能使sql自動運行
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

有什麼方法能使sql自動運行

發布時間: 2023-04-11 09:33:54

『壹』 如何讓軟體自動運行

讓一個軟體或程序開機自動運行的方法有很多,比如修改注冊表、注冊成系統服務等等,這些操作對一般電腦使用者來說,似乎難了點。下面介紹個簡單的方法:
比如安裝了首佳汽芹鏈修汽配軟體之後,伺服器上要自動開啟資料庫服務。
1、在anywhere資料庫的版本中,自動啟動資料庫可以用安裝目錄下的工具start_service.exe。
2、找到安裝目錄下基亂的start_service.exe文件,右鍵點擊該文件,然後點創建快捷方式,就產生一個start_service.exe的運行的快捷方式文件 "快捷方式 到 start_service.exe"。註:運行快捷方式跟運行軟體的啟動文件是一樣的。
3、復制剛才產生的快捷方式文件"快捷方式 到 start_service.exe",或者剪切。
4、點"開始"菜單,展開程序(XP操作系統中叫所有程序),找到「啟動」,然後點「啟動」的右鍵,嫌鋒孫在彈出的菜單中,點「打開所有用戶」,再點粘貼,就把快捷方式粘貼過來了。以後每個操作系統用戶登錄後都會自動運行啟動資料庫服務。如果一台機子是多個用戶使用的,注意在安裝時要用管理員身份,如果不能啟動,請檢查ODBC配置問題。

以上介紹的是創建快捷方式的辦法讓程序自動運行。首佳軟體Sybase anywhere資料庫的版本,如果是在伺服器上安裝軟體,請在安裝時選擇的安裝類型為完全安裝或定製安裝,安裝程序會自動創建資料庫啟動服務程序的自動啟動快捷方式。原理同上。首佳軟體sql資料庫的版本,有SQL Server的支持,資料庫服務默認情況下是自動啟動的,如果沒有自動啟動,請在系統服務中設置為自動啟動。

『貳』 mysqlmp有幾種自動執行的方法

把ip改成localhost就可以的 如果裝了navicate那就更簡單了 先連接上資料庫,選中資料庫 再選擇轉儲sql 就好了方法二 進入cmd (注意在os cmd中 而不是在mysql中) =================== 一.導出資料庫(sql腳本) mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名 mysqlmp -u root -p db_name > test_db.sql 二.mysql導出資料庫一個表 mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名 mysqlmp -u wcnc -p test_db users> test_users.sql (結尾沒有分號)方法三啟動mysql服務 /etc/init.d/mysql start導出整個資料庫 mysqlmp dbname > c:mydb.sql -u root -p 導入資料庫 source mydb.sqlmysql -u用戶名 -p 資料庫名 資料庫名.sql更詳細的導入資料庫教程 二.一. 導出sql腳本 在原資料庫伺服器上,可以用php教程myadmin工具,或者mysqlmp(mysqlmp命令位於mysql/bin/目錄中)命令行,導出sql腳本。 二.一.一 用phpmyadmin工具 導出選項中,選擇導出"結構"和"數據",不要添加"drop database"和"drop table"選項。 選中"另存為文件"選項,如果數據比較多,可以選中"gzipped"選項。 將導出的sql文件保存下來。二.一.二 用mysqlmp命令行命令格式mysqlmp -u用戶名 -p 資料庫名 > 資料庫名.sql範例:mysqlmp -uroot -p abc > abc.sql (導出資料庫abc到abc.sql文件)提示輸入密碼時,輸入該資料庫用戶名的密碼。二.二. 創建空的資料庫 通過主控界面/控制面板,創建一個資料庫。假設資料庫名為abc,資料庫全權用戶為abc_f。二.三. 將sql腳本導入執行 同樣是兩種方法,一種用phpmyadmin(mysql資料庫管理)工具,或者mysql命令行。 二.三.一 用phpmyadmin工具 從控制面板,選擇創建的空資料庫,點"管理",進入管理工具頁面。 在"sql"菜單中,瀏覽選擇剛才導出的sql文件,點擊"執行"以上載並執行。注意:phpmyadmin對上載的文件大小有限制,php本身對上載文件大小也有限制,如果原始sql文件 比較大,可以先用gzip對它進行壓縮,對於sql文件這樣的文本文件,可獲得一:5或更高的壓縮率。 gzip使用方法: # gzip xxxxx.sql得到xxxxx.sql.gz文件。二.三.二 用mysql命令行命令格式mysql -u用戶名 -p 資料庫名 < 資料庫名.sql範例:mysql -uabc_f -p abc < abc.sql (導入資料庫abc從abc.sql文件)提示輸入密碼時,輸入該資料庫用戶名的密碼

『叄』 sql server:如何設置自動執行的存儲過程

--方法1:作業里定時執行存儲過程定時作業的制定 企業管理器 --管理 --SQL Server代理 --右鍵作業 --新建作業 --"常規"項中輸入作業名稱 --"步驟"項 --新建 --"步驟名"中輸入步驟名 --"類型"中選擇"Transact-SQL 腳本(TSQL)" --"資料庫"選擇執行命令的資料庫 --"命令"中輸入要執行的語句: EXEC 存儲過程名 ... --該存儲過程用於創建表 --確定 --"調度"項 --新建調度 --"名稱"中輸入調度名稱 --"調度類型"中選擇你的作業執行安排 --如果選擇"反復出現" --點"更改"來設置你的時間安排 然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行 設置方法: 我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定. --方法2:將存儲過程創建在master資料庫中,然後企業管理器中找到這個存儲過程--右鍵--屬性--勾選"每當sql server啟動時執行"。 或在master中創建存儲過程後,執行語句配置為自動啟動 use master exec sp_procoption '存儲過程名','startup','on' 自動執行存儲過程 SQL Server 啟動時能夠自動執行一個或多個存儲過程。這些存儲過程必須由系統管理員創建,並在 sysadmin 固定伺服器角色下作為後台過程執行。這些過程不能有任何輸入參數。 對啟動過程的數目沒有限制,但是要注意,每個啟動過程在執行時都會佔用一個連接。假如必須在啟動時執行多個過程,但無需並行執行,則能夠指定一個過程作為啟動過程,讓該過程調用其他過程。這樣就只佔用一個連接。 在啟動時恢復了最後一個資料庫後,即開始執行存儲過程。若要跳過這些存儲過程的執行,請將啟動參數指定為跟蹤標記 4022。假如以最低配置啟動 SQL Server(使用 -f 標記),則啟動存儲過程也不會執行。有關更多信息,請參見跟蹤標記。 若要創建啟動存儲過程,必須作為 sysadmin 固定伺服器角色的成員登錄,並在 master 資料庫中創建存儲過程。 使用 sp_procoption 能夠: 將現有存儲過程指定為啟動過程。

『肆』 怎麼在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語句執行

1、啟動visual studio 2017,點擊【文件】-》【新建】-》【項目】-》創建名為【ExecuteSql】的Web項目。

『陸』 如何直接執行SQL語句

1、ExecuteQuery方法

看命名,我們很容易聯想到ADO.NET里熟悉的Command的ExecuteNonQuery方法,但是VS的智能提示告訴我們這個方法返回的是一個泛型集合,應該「所思非所得」。下面通過一個簡單方法,驗證我們的猜想(資料庫設計可以參考這一篇):

/// <summary>
/// 直接執行sql語句,獲取總人數
/// </summary>
/// <returns></returns>
publicint GetTotalCount()
{
string strSql = "SELECT COUNT(0) FROM Person(NOLOCK)";
var query = dataContext.ExecuteQuery<int>(strSql);
int result = query.First<int>();
Console.WriteLine();
Console.WriteLine("total count:{0}", result);
return result;
}

調試的時候,通過IntelliTrace跟蹤到:

毫無疑問,上面的圖片說明最初的想法是不正確的,」ADO.NET:執行Reader…」雲雲,讓我們更加堅信它實際執行的應該是ExecuteReader方法。當然最簡單的方法是直接查看它的方法說明:

// 摘要:
// 直接對資料庫執行 SQL 查詢並返回對象。
//
// 參數:
// query:
// 要執行的 SQL 查詢。
//
// parameters:
// 要傳遞給命令的參數數組。注意下面的行為:如果數組中的對象的數目小於命令字元串中已標識的最大數,
則會引發異常。如果數組包含未在命令字元串中引用的對象,則不會引發異常。如果某參數為
// null,則該參數會轉換為 DBNull.Value。
//
// 類型參數:
// TResult:
// 返回的集合中的元素的類型。
//
// 返回結果:
// 由查詢返回的對象的集合。
public IEnumerable<TResult> ExecuteQuery<TResult>(string query, paramsobject[] parameters);

ExecuteQuery方法還有一個非泛型方法:

//
// 摘要:
// 直接對資料庫執行 SQL 查詢。
//
// 參數:
// elementType:
//

要返回的 System.Collections.Generic.IEnumerable<T>
的類型。使查詢結果中的列與對象中的欄位或屬性相匹配的演算法如下所示:如果欄位或屬性映射到特定列名稱,則結果集中應包含該列名稱。如果未映射欄位或屬性,則結果集中應包含其名稱與該欄位或屬性相同的列。通過先查找區分大小寫的匹配來執行比較。如果未找到匹配項,則會繼續搜索不區分大小寫的匹配項。如果同時滿足下列所有條件,則該查詢應當返回(除延遲載入的對象外的)對象的所有跟蹤的欄位和屬性:T

// 是由 System.Data.Linq.DataContext 顯式跟蹤的實體。
System.Data.Linq.DataContext.ObjectTrackingEnabled
// 為 true。實體具有主鍵。否則會引發異常。
//
// query:
// 要執行的 SQL 查詢。
//
// parameters:
// 要傳遞給命令的參數數組。注意下面的行為:如果數組中的對象的數目小於命令字元串中已標識的最大數,
則會引發異常。如果數組包含未在命令字元串中引用的對象,則不會引發異常。如果某參數為
// null,則該參數會轉換為 DBNull.Value。
//
// 返回結果:
// 由查詢返回的對象的 System.Collections.Generic.IEnumerable<T> 集合。
public IEnumerable ExecuteQuery(Type elementType, string query, paramsobject[] parameters);

看它的參數需要多傳遞一個elementType,明顯不如泛型方法簡潔。

2、ExecuteCommand方法

同樣道理,這個方法立刻讓我們聯想到(世界沒有聯想,生活將會怎樣?),聯想到,等等,不知聯想到什麼。然後我們看一下方法使用說明:

//
// 摘要:
// 直接對資料庫執行 SQL 命令。
//
// 參數:
// command:
// 要執行的 SQL 命令。
//
// parameters:
// 要傳遞給命令的參數數組。注意下面的行為:如果數組中的對象的數目小於命令字元串中已標識的最大數,
則會引發異常。如果數組包含未在命令字元串中引用的對象,則不會引發異常。如果任一參數為
// null,則該參數會轉換為 DBNull.Value。
//
// 返回結果:
// 一個 int,表示所執行命令修改的行數。
publicint ExecuteCommand(string command, paramsobject[] parameters);

到這里,看它的返回類型為int,表示執行命令修改的行數,這次很容易想到ExecuteNonQuery方法。對不對呢?通過下面的代碼證明我們的設想:

/// <summary>
/// 直接執行sql語句 根據用戶Id更新體重
/// </summary>
/// <param name="id">用戶Id</param>
/// <param name="destWeight">更新後的體重</param>
/// <returns></returns>
publicint ModifyWeightById(int id, double destWeight)
{
string strSql = string.Format("UPDATE Person SET Weight={0} WHERE Id={1}", destWeight, id);
int result = dataContext.ExecuteCommand(strSql);
Console.WriteLine();
Console.WriteLine("affect num:{0}", result);
return result;
}

調試過程中,通過IntelliTrace可以很清楚地捕獲:「ADO.NET:執行NonQuery…」基本可以斷言我們的設想是正確的。

3、防止sql注入

1和2中,執行sql語句的兩個方法都有一個params 類型的參數,我們又會想到ADO.NET非常重要的sql語句的參數化防止sql注入問題。下面通過一個方法,看看linq2sql可不可以防止sql注入。

(1)、直接執行拼接的sql語句(有風險)

/// <summary>
/// 直接執行sql語句 根據用戶Id更新FirstName
/// </summary>
/// <param name="id">用戶Id</param>
/// <param name="destName">更新後的FirstName</param>
/// <returns></returns>
publicint ModifyNameById(int id, string destName)
{
string strSql = string.Format("UPDATE Person SET FirstName='{0}' WHERE Id={1}", destName, id);
//這么拼接有風險
int result = dataContext.ExecuteCommand(strSql);
Console.WriteLine();
Console.WriteLine("affect num:{0}", result);
return result;
}

然後,在客戶端這樣調用這個方法:

int result = ServiceFactory.CreatePersonService().ModifyNameById(10, "'Anders'");
//更新id為10的人的FirstName

『柒』 怎樣自動執行一段SQL語句

資料庫里有作業的功能,可以定時執行SQL語句、存儲過程:
SqlServer代理--作業--新建作業--
在常規里給作業起名等等--
在步驟里--新建步驟--起名--命令里可以是SQL語句也可以調存儲過程
在計劃里--新建計劃--設置執行作業的時間
、、、

『捌』 請教,如何定時自動執行SQL

--"類型"中選擇"Transact-SQL 腳本(TSQL)" --"資料庫"選擇執行命令的資料庫 --"命令"中輸入要執行的語句: Update City Set IsAccess=0--確定--"調度"項--新建調度--"名稱"中輸入調度名稱 --"調度類型"中選擇你的作業執行安排--定為每天調度一次,時間為18:40即可 --如果選擇"反復出現" --點"更改"來設置你的時間安排 然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行設置方法:我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定.

『玖』 sql server 2000怎樣設置定時自動運行SQL語句

如果在SQL Server 里需要定時或者每隔一段時間執行某個存儲過程或3200字元以內的SQL語句時,

可以用管理->SQL Server代理->作業來實現。

1、管理->SQL Server代理->作業(按滑鼠右鍵)->新建作業->

2、新建作業屬性(常規)->名稱[自定義本次作業的名稱]->啟用的方框內是勾號->

分類處可選擇也可用默認的[未分類(本地)]->所有者默認為登錄SQL Server用戶[也可選其它的登錄]->

描述[填寫本次工作詳細描述內容];

[ 創建作業分類的步驟:

SQL Server代理->作業->右鍵選所有任務->添加、修改、刪除 ]

3、新建作業屬性(步驟)->新建->步驟名[自定義第一步驟名稱]->類型[Transact-SQL(TSQL)腳本]->

資料庫[要操作的資料庫]->命令

[ 如果是簡單的SQL直接寫進去即可,也可用打開按鈕輸入一個已寫好的*.sql文件
如果要執行存儲過程,填
exec p_procere_name v_parameter1,[ v_parameter2…v_parameterN]
]

->確定
(如果有多個步驟,可以再次調用下面的新建按鈕;也可以對已有的多個步驟插入、編輯、刪除);

4、建作業屬性(調度)->新建調度->名稱[自定義調度名稱]->啟用的方框內是勾號->調度->反復出現->

更改[調度時間表]->確定

(如果只要保存此作業,不要定時做可以把啟用的方框內是勾號去掉);

5、建作業屬性(通知)->用默認的通知方法就好[當作業失敗時,寫入Windows應用程序系統日誌] ->確定。

跟作業執行相關的一些SQL Server知識:

SQLSERVERAGENT服務必須正常運行,啟動它的NT登錄用戶要跟啟動SQL Server資料庫的NT登錄用戶一致。

點作業右鍵可以查看作業執行的歷史記錄情況,也可以立即啟動作業和停止作業。

最近在看作業歷史記錄時,發現有的作業記錄的歷史記錄多,有的作業記錄的記錄的歷史記錄少.

如何能使某些作業按各自的需求,保留一段時間.比如保留一個月的歷史記錄.

看了SQL Server的在線幫助文檔,裡面介紹說:

在管理->SQL Server代理->右鍵選屬性->作業系統->限製作業歷史記錄日誌的大小->

作業歷史記錄日誌的最大大小(行數) 默認為1000 如果某台機器的作業數量很多,一定要提高它,例如為100000

每個作業歷史記錄日誌的最大行數 默認為100 如果作業每天執行兩次,需要保留一個月的日誌,可以設為60

它們之間有一個相互制約關系, 我們可以根據自己的需要來改.

如果SQL Server伺服器改過機器名, 管理是舊名稱時建立的job的時候可能會遇到

錯誤14274: 無法添加、更新或刪除從MSX伺服器上發起的作業(或其步驟或調度)

看了Microsoft的文檔:http://support.microsoft.com/default.aspx?scid=kb;en-us;281642

說SQL Server 2000系統里msdb..sysjobs 里originating_server 欄位里存的是原來的伺服器的名稱.

24X7在用的系統肯定不能按上面Microsoft的文檔說的那樣把名字改回來又改過去。

於是想,msdb..sysjobs 能否update originating_server 欄位成現在在用的新伺服器名?

use msdb

select * from sysjobs

找到originating_server 欄位還是舊伺服器的job_id, 然後執行update語句:

update sysjobs set originating_server='new_server_name'
where job_id='B23BBEBE-A3C1-4874-A4AB-0E2B7CD01E14'

(所影響的行數為 1 行)

這樣就可以添加、更新或刪除那些曾經出error 14274 的作業了。

如果想把作業由一台機器遷移到另一台機器,可以先保留好創建作業的腳本, 然後在另一台機器上運行。

導出所有作業的創建腳本操作步驟:

管理->SQL Server代理->作業(滑鼠右鍵)->所有任務->生成SQL腳本->保存到操作系統下的某個sql文件導出某一個作業的創建腳本操作步驟:

管理->SQL Server代理->作業->選中待轉移的作業(滑鼠右鍵)->所有任務->生成SQL腳本->保存到OS下的某個sql文件然後在目的伺服器上運行剛才保存下來的創建作業的sql腳本。

( 如果建作業的用戶或者提醒的用戶不存在, 則會出錯;

我們需要在目的伺服器上建立相關的WINDOWS用戶或者SQL Server資料庫登錄,

也可以修改創建作業的腳本, 把目的伺服器上不存在的用戶替換成已經有的用戶。

如果生成日誌的物理文件目錄不存在,也應該做相關的修改,例如d:區轉f:區等

字元串的 @command 命令里有分隔符號 go 也會出錯, 可以把它去掉)