當前位置:首頁 » 數據倉庫 » sql資料庫關閉語句
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql資料庫關閉語句

發布時間: 2022-09-22 03:37:51

A. Mysql 怎麼終止當前正在執行的 SQL 語句

操作步驟:

show processlist;
找出你要停止的語句
然後找出你要終止的語句的id
在系統下mysqladmin -uroot -ppassword kill 要殺的ID

MySQL查詢語句執行的過程:

  • 客戶端發送一條查詢給伺服器;

  • 伺服器先會檢查查詢緩存,如果命中了緩存,則立即返回存儲在緩存中的結果。否則進入下一階段;

  • 伺服器端進行SQL解析、預處理,再由優化器生成對應的執行計劃;

  • MySQL根據優化器生成的執行計劃,調用存儲引擎的API來執行查詢;

  • 將結果返回給客戶端。


B. sqlserver 資料庫啟動,關閉指定資料庫(如:master)命令

不知道你所說的關閉是指什麼,SQL Server里嚴格的講是沒有關閉資料庫這種說法的。在確定資料庫沒有被使用的情況下可以將其狀態設置為離線,這樣就沒人能夠訪問離線的資料庫,應該就是你所說的關閉了。

另外,master是不能「關閉」的。如果你只是打個比方的話就無所謂了。
將資料庫設置為離線的命令是:
alter database 資料庫名 set offline
姑且用master來做例子
alter database master set offline
離線以後,想設置為在線對應的命令是
alter database 資料庫名 set online

C. sql資料庫的開啟和關閉問題

不會在開啟了
條轉到別的頁面
資料庫就自動關閉了
但是如果沒必要的話
在本頁最下面
手動關閉他把
否則信息已經獲取到了
資料庫還是連接這的

D. 使用哪一條shutdown語句關閉資料庫時,下次打開資料庫是需要做恢復操作

1 資料庫的啟動(STARTUP)

在Startup命令中,可以通過不同的選項來控制資料庫的不同啟動步驟。

1、STARTUP NOMOUNT

NONOUNT選項僅僅創建一個Oracle實例。讀取init.ora初始化參數文件、啟動後台進程、初始化系統全局區(SGA)。Init.ora文件定義了實例的配置,包括內存結構的大小和啟動後台進程的數量和類型等。實例名根據Oracle_SID設置,不一定要與打開的資料庫名稱相同。當實例打開後,系統將顯示一個SGA內存結構和大小的列表,如下所示:

SQL> startup nomount
ORACLE instance started.
Total System Global Area 35431692 bytes
Fixed Size 70924 bytes
Variable Size 18505728 bytes
Database Buffers 16777216 bytes
Redo Buffers 77824 bytes

2、STARTUP MOUNT

該命令創建實例並且安裝資料庫,但沒有打開資料庫。Oracle系統讀取控制文件中關於數據文件和redo log文件的內容,但並不打開這些文件。這種打開方式常在資料庫維護操作時使用,如對數據文件的更名、改變redo log以及打開歸檔方式、執行資料庫的full database recovery。在這種打開方式下,除了可以看到SGA系統列表以外,系統還會給出" Database mounted. "的提示。

3、STARTUP

該命令完成創建實例、安裝實例和打開資料庫的所有三個步驟。此時資料庫使數據文件和redo log文件在線,通常還會請求一個或者是多個回滾段。這時系統除了可以看到前面Startup Mount方式下的所有提示外,還會給出一個" Database opened. "的提示。此時,資料庫系統處於正常工作狀態,可以接受用戶請求。

如果採用STARTUP NOMOUNT或者是STARTUP MOUNT的資料庫打開命令方式,必須採用ALTER DATABASE命令來執行打開資料庫的操作。例如,如果你以STARTUP NOMOUNT方式打開資料庫,也就是說實例已經創建,但是資料庫沒有安裝和打開。這時必須運行下面的兩條命令,資料庫才能正確啟動。
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;

而如果以STARTUP MOUNT方式啟動資料庫,則只需要運行下面一條命令即可以打開資料庫:
ALTER DATABASE OPEN;

4、其他打開方式

除了前面介紹的三種資料庫打開方式選項外,還有另外其他的一些選項。

(1) STARTUP RESTRICT

這種方式下,資料庫將被成功打開,但僅僅允許一些特權用戶(具有DBA角色的用戶)才可以使用資料庫。這種方式常用來對資料庫進行維護,如數據的導入/導出操作時不希望有其他用戶連接到資料庫操作數據、數據裝載、特定的遷移或者升級操作等。

(2) STARTUP FORCE

該命令其實是強行關閉資料庫(shutdown abort)和啟動資料庫(startup)兩條命令的一個綜合。該命令僅在關閉資料庫遇到問題不能關閉資料庫時採用。

(3) ALTER DATABASE OPEN READ ONLY;

該命令在創建實例以及安裝資料庫後,以只讀方式打開資料庫。對於那些僅僅提供查詢功能的產品資料庫可以採用這種方式打開。

2 資料庫的關閉(SHUTDOWN)

對於資料庫的關閉,有四種不同的關閉選項。

1、SHUTDOWN NORMAL

這是資料庫關閉SHUTDOWN命令的確省選項。也就是說如果輸入SHUTDOWN這樣的命令,也就是執行SHUTDOWN NORNAL命令。

發出該命令後,任何新的連接都將再不允許連接到資料庫。在資料庫關閉之前,Oracle將等待目前連接的所有用戶都從資料庫中退出後才開始關閉資料庫。採用這種方式關閉資料庫,在下一次啟動時不需要進行任何的實例恢復。但需要注意的是,採用這種方式,也許關閉一個資料庫需要幾天時間,或者更長。

2、SHUTDOWN IMMEDIATE

這是常用的一種關閉資料庫的方式,想很快地關閉資料庫,但又想讓資料庫干凈的關閉,常採用這種方式。
當前正在被Oracle處理的SQL語句立即中斷,系統中任何沒有提交的事務全部回滾。如果系統中存在一個很長的未提交的事務,採用這種方式關閉資料庫也需要一段時間(該事務回滾時間)。系統不等待連接到資料庫的所有用戶退出系統,強行回滾當前所有的活動事務,然後斷開所有的連接用戶。

3、SHUTDOWN TRANSACTIONAL

該選項僅在Oracle 8i後才可以使用。該命令常用來計劃關閉資料庫,它使當前連接到系統且正在活動的事務執行完畢,運行該命令後,任何新的連接和事務都是不允許的。在所有活動的事務完成後,資料庫將和SHUTDOWN IMMEDIATE同樣的方式關閉資料庫。

4、SHUTDOWN ABORT

這是關閉資料庫的最後一招,也是在沒有任何辦法關閉資料庫的情況下才不得不採用的方式,一般不要採用。如果下列情況出現時可以考慮採用這種方式關閉資料庫。

1、 資料庫處於一種非正常工作狀態,不能用shutdown normal或者shutdown immediate這樣的命令關閉資料庫;
2、 需要立即關閉資料庫;
3、 在啟動資料庫實例時遇到問題;

所有正在運行的SQL語句都將立即中止。所有未提交的事務將不回滾。Oracle也不等待目前連接到資料庫的用戶退出系統。下一次啟動資料庫時需要進行實例恢復,因此,下一次啟動可能比平時需要更多的時間。

下表為上述四種不同關閉資料庫的區別和聯系。
關閉方式 Abort Immediate Transaction Nornal
允許新的連接 × × × ×
等待直到當前會話中止 × × × √
等待直到當前事務中止 × × √ √
強制CheckPoint,關閉所有文件 × √ √ √

E. 【SQL】sql語句如何關閉資料庫

select
into
from語句

要求目標表table_4不存在,因為在插入時會自動創建表table_4,並將table_3中指定欄位數據復制到table_4中。

可以考慮使用如下語句:

insert
into
dbo.table_4
(sname,
semail)
(select
sname,
semail
from
table_3);

F. SQL2005,用SQL語句刪除資料庫提示正在使用,刪除不掉,用什麼語句可以關閉所有連接之後再DROP刪除呢

不能刪除當前正在使用(表示正打開供任意用戶讀寫)的資料庫。若要從資料庫中刪除用戶,請使用 ALTER DATABASE 將資料庫設置為 SINGLE_USER。
ALTER DATABASE db_name SET SINGLE_USER

G. 怎樣用SQL語句斷開資料庫的連接

我的意思是別人的應用程序正在運行SQL資料庫,我想通過編程關閉其資料庫,對其資料庫進行恢復備份。即兩台一樣的正在運行的伺服器,將其中一台的某一個運行庫備份到另一台正在運行的伺服器,覆蓋其資料庫(兩庫一樣),用定時器,定時執行。

H. 用c#實現對 SQL資料庫的 連接關閉,增刪查改

public abstract class SqlHelper
{
//獲取資料庫連接字元串,其屬於靜態變數且只讀,項目中所有文檔可以直接使用,但不能修改
public static readonly string = ConfigurationManager.ConnectionStrings["pubsConnectionString"].ConnectionString;

// 哈希表用來存儲緩存的參數信息,哈希表可以存儲任意類型的參數。
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());

/// <summary>
///執行一個不需要返回值的SqlCommand命令,通過指定專用的連接字元串。
/// 使用參數數組形式提供參數列表
/// </summary>
/// <remarks>
/// 使用示例:
/// int result = ExecuteNonQuery(connString, CommandType.StoredProcere, "PublishOrders", new SqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString">一個有效的資料庫連接字元串</param>
/// <param name="commandType">SqlCommand命令類型 (存儲過程, T-SQL語句, 等等。)</param>
/// <param name="commandText">存儲過程的名字或者 T-SQL 語句</param>
/// <param name="commandParameters">以數組形式提供SqlCommand命令中用到的參數列表</param>
/// <returns>返回一個數值表示此SqlCommand命令執行後影響的行數</returns>
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{

SqlCommand cmd = new SqlCommand();

using (SqlConnection conn = new SqlConnection(connectionString))
{
//通過PrePareCommand方法將參數逐個加入到SqlCommand的參數集合中
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();

//清空SqlCommand中的參數列表
cmd.Parameters.Clear();
return val;
}
}

/// <summary>
///執行一條不返回結果的SqlCommand,通過一個已經存在的資料庫連接
/// 使用參數數組提供參數
/// </summary>
/// <remarks>
/// 使用示例:
/// int result = ExecuteNonQuery(conn, CommandType.StoredProcere, "PublishOrders", new SqlParameter("@prodid", 24));
/// </remarks>
/// <param name="conn">一個現有的資料庫連接</param>
/// <param name="commandType">SqlCommand命令類型 (存儲過程, T-SQL語句, 等等。)</param>
/// <param name="commandText">存儲過程的名字或者 T-SQL 語句</param>
/// <param name="commandParameters">以數組形式提供SqlCommand命令中用到的參數列表</param>
/// <returns>返回一個數值表示此SqlCommand命令執行後影響的行數</returns>
public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{

SqlCommand cmd = new SqlCommand();

PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}

/// <summary>
/// 執行一條不返回結果的SqlCommand,通過一個已經存在的資料庫事物處理
/// 使用參數數組提供參數
/// </summary>
/// <remarks>
/// 使用示例:
/// int result = ExecuteNonQuery(trans, CommandType.StoredProcere, "PublishOrders", new SqlParameter("@prodid", 24));
/// </remarks>
/// <param name="trans">一個存在的 sql 事物處理</param>
/// <param name="commandType">SqlCommand命令類型 (存儲過程, T-SQL語句, 等等。)</param>
/// <param name="commandText">存儲過程的名字或者 T-SQL 語句</param>
/// <param name="commandParameters">以數組形式提供SqlCommand命令中用到的參數列表</param>
/// <returns>返回一個數值表示此SqlCommand命令執行後影響的行數</returns>
public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}

/// <summary>
/// 執行一條返回結果集的SqlCommand命令,通過專用的連接字元串。
/// 使用參數數組提供參數
/// </summary>
/// <remarks>
/// 使用示例:
/// SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcere, "PublishOrders", new SqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString">一個有效的資料庫連接字元串</param>
/// <param name="commandType">SqlCommand命令類型 (存儲過程, T-SQL語句, 等等。)</param>
/// <param name="commandText">存儲過程的名字或者 T-SQL 語句</param>
/// <param name="commandParameters">以數組形式提供SqlCommand命令中用到的參數列表</param>
/// <returns>返回一個包含結果的SqlDataReader</returns>
public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connectionString);

// 在這里使用try/catch處理是因為如果方法出現異常,則SqlDataReader就不存在,
//CommandBehavior.CloseConnection的語句就不會執行,觸發的異常由catch捕獲。
//關閉資料庫連接,並通過throw再次引發捕捉到的異常。
try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr;
}
catch
{
conn.Close();
throw;
}
}

/// <summary>
/// 執行一條返回第一條記錄第一列的SqlCommand命令,通過專用的連接字元串。
/// 使用參數數組提供參數
/// </summary>
/// <remarks>
/// 使用示例:
/// Object obj = ExecuteScalar(connString, CommandType.StoredProcere, "PublishOrders", new SqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString">一個有效的資料庫連接字元串</param>
/// <param name="commandType">SqlCommand命令類型 (存儲過程, T-SQL語句, 等等。)</param>
/// <param name="commandText">存儲過程的名字或者 T-SQL 語句</param>
/// <param name="commandParameters">以數組形式提供SqlCommand命令中用到的參數列表</param>
/// <returns>返回一個object類型的數據,可以通過 Convert.To{Type}方法轉換類型</returns>
public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();

using (SqlConnection connection = new SqlConnection(connectionString))
{
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}
}

/// <summary>
/// 執行一條返回第一條記錄第一列的SqlCommand命令,通過已經存在的資料庫連接。
/// 使用參數數組提供參數
/// </summary>
/// <remarks>
/// 使用示例:
/// Object obj = ExecuteScalar(connString, CommandType.StoredProcere, "PublishOrders", new SqlParameter("@prodid", 24));
/// </remarks>
/// <param name="conn">一個已經存在的資料庫連接</param>
/// <param name="commandType">SqlCommand命令類型 (存儲過程, T-SQL語句, 等等。)</param>
/// <param name="commandText">存儲過程的名字或者 T-SQL 語句</param>
/// <param name="commandParameters">以數組形式提供SqlCommand命令中用到的參數列表</param>
/// <returns>返回一個object類型的數據,可以通過 Convert.To{Type}方法轉換類型</returns>
public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{

SqlCommand cmd = new SqlCommand();

PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}

/// <summary>
/// 緩存參數數組
/// </summary>
/// <param name="cacheKey">參數緩存的鍵值</param>
/// <param name="cmdParms">被緩存的參數列表</param>
public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)
{
parmCache[cacheKey] = commandParameters;
}

/// <summary>
/// 獲取被緩存的參數
/// </summary>
/// <param name="cacheKey">用於查找參數的KEY值</param>
/// <returns>返回緩存的參數數組</returns>
public static SqlParameter[] GetCachedParameters(string cacheKey)
{
SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];

if (cachedParms == null)
return null;

//新建一個參數的克隆列表
SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];

//通過循環為克隆參數列表賦值
for (int i = 0, j = cachedParms.Length; i < j; i++)
//使用clone方法復制參數列表中的參數
clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();

return clonedParms;
}

/// <summary>
/// 為執行命令准備參數
/// </summary>
/// <param name="cmd">SqlCommand 命令</param>
/// <param name="conn">已經存在的資料庫連接</param>
/// <param name="trans">資料庫事物處理</param>
/// <param name="cmdType">SqlCommand命令類型 (存儲過程, T-SQL語句, 等等。)</param>
/// <param name="cmdText">Command text,T-SQL語句 例如 Select * from Procts</param>
/// <param name="cmdParms">返回帶參數的命令</param>
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{

//判斷資料庫連接狀態
if (conn.State != ConnectionState.Open)
conn.Open();

cmd.Connection = conn;
cmd.CommandText = cmdText;

//判斷是否需要事物處理
if (trans != null)
cmd.Transaction = trans;

cmd.CommandType = cmdType;

if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}

I. SQL怎麼關閉資料庫連接(刪除資料庫時需要關閉連接)

drop DataBase操作時,你的連接應當是master庫
使用連接串連接找開某個庫進行增刪改操作時,是刪不掉這個庫的吧...

J. VB怎麼用SQL語句來實現關閉資料庫

呵呵,你定義了Dim DBConn As New ADODB.Connection連接,那麼有兩種方法:
1、DBConn.close '直接關閉連接
2、set DBConn=nothing 『設置為空連接,那麼原來的當然就關了