顯示具有 T-SQL 標籤的文章。 顯示所有文章
顯示具有 T-SQL 標籤的文章。 顯示所有文章

2009年11月8日

如何使用 T-SQL 更改資料庫名稱

要更改資料庫名稱,除了透過 SQL Server 圖形化的管理介面(SQL Sever Enterprise Management、SQL Server Management Studio 或 SQL Server Management Studio Express),還可以透過下面的 T-SQL 指令:
USE master;
GO
-- 切換至單人模式
EXEC sp_dboption <欲更名的資料庫名稱>, 'Single User', True;
GO
-- 更名資料庫
EXEC sp_renamedb '<欲更名的資料庫名稱>', '<新的資料庫名稱>';
GO
-- 回復多人模式
EXEC sp_dboption <欲更名的資料庫名稱>, 'Single User', False;
GO
請注意,在更改資料庫名稱時,是不會更改群組檔案、資料庫檔案、資料庫日誌檔的名稱。此外,建議改用 ALTER DATABASE MODIFY NAME  指令:
ALTER DATABASE <舊資料庫名稱>
    Modify NAME = <新資料庫名稱>;

2009年5月20日

如何使用 T-SQL 語法查出某個欄位的累積值

假設有如下所示的資料表,要如何透過 T-SQL 指令計算出數量的累積值(就是最下面那個表格中,「累計庫存」黃色的欄位)?
日期 類別 單號 入庫數量 出庫數量
2009/01/20 進貨 D001 300 0
2009/01/20 進貨 D002 600 0
2009/01/21 銷貨 D003 0 -300
2009/01/21 銷貨 D004 0 -600
2009/02/02 進貨 D005 300 0
2009/02/02 進貨 D006 2400 0
2009/02/03 銷貨 D007 0 -300
2009/02/03 銷貨 D008 0 -2400
2009/02/25 進貨 D009 900 0
2009/02/26 進貨 D010 600 0
2009/02/27 銷貨 D011 0 -900
2009/02/27 銷貨 D012 0 -600


日期 類別 單號 入庫數量 出庫數量 累計庫存
2009/01/20 進貨 D001 300 0 300
2009/01/20 進貨 D002 600 0 900
2009/01/21 銷貨 D003 0 -300 600
2009/01/21 銷貨 D004 0 -600 0
2009/02/02 進貨 D005 300 0 300
2009/02/02 進貨 D006 2400 0 2700
2009/02/03 銷貨 D007 0 -300 2400
2009/02/03 銷貨 D008 0 -2400 0
2009/02/25 進貨 D009 900 0 900
2009/02/26 進貨 D010 600 0 1500
2009/02/27 銷貨 D011 0 -900 600
2009/02/27 銷貨 D012 0 -600 0

由於這個資料表有個欄位「單號」是獨一的(Unique),且後一個單號的值會比前一個單號的值還大,因此透過這個欄位,我們可以使用下面的 T-SQL 指令動態計算出「累計庫存」的數值:

SELECT 日期, 類別, 單號, 入庫數量, 出庫數量,
  (SELECT SUM(入庫數量 + 出庫數量) FROM ALEX AS ONE
    WHERE TWO.單號 >= ONE.單號) AS 累計庫存
FROM ALEX AS TWO

2009年2月9日

如何從既有的資料表中,匯出 XSD 檔

要從既有的資料表中,匯出 XSD 檔,可不能直接在 SSMS 或 Analyzer 的 GUI 介面中,在資料表名稱上按下滑鼠右鍵這麼簡單,倒是只需幾行 T-SQL 即可。 以下面的程式碼為例,就是從 NorthWind 資料庫的 Customers 資料表中,匯出 XSD:
USE NorthWind; SELECT * FROM Customers FOR XML RAW('Customer'), XMLSCHEMA('urn:microsoft.com');

2008年11月24日

如何使用 T-SQL 指令得知 Microsoft SQL Server 電腦的名稱

至少有下列幾種方法可以使用 T-SQL 指令得知 Microsoft SQL Server 電腦的名稱:
-- 方法 1 sp_helpserver -- 方法 2 select @@SERVERNAME -- 方法 3 SELECT SERVERPROPERTY('MachineName') -- 方法 4 SELECT srvname FROM SYS.SYSSERVERS -- 方法 5 SELECT name FROM SYS.SERVERS

2008年11月10日

如何使用 T-SQL 指令得知 Microsoft SQL Server 執行個體的名稱

要透過 T-SQL 指令得知 Microsoft SQL Server 執行個體的名稱,可以透過下面的 T-SQL 程式碼:
SELECT SERVERPROPERTY('InstanceName')
如果查詢出來的結果是 NULL,表示執行個體是所謂的預設執行個體