bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

Entries for the ‘MSSQL’ Category

MS OLAP 安裝小記

因為自己的 NB 安裝的 MS SQL 開機不是自動啟動,所以直接安裝 Analysis Services 完後,一直都是無法連接 OLAP Servces 的錯誤訊息。檢查確定在系統帳號中有加入 OLAP Administrators 群組,且有加入成員。

經過幾次的重新安裝忽然想倒是否一定要在 SQL Server 啟動狀況下才會安裝成功。

果然如此。

Leave a Comment

MS SQL 使用 SQL 取得日期部份數值

在 MS SQL 6.5 中使用 getDate() 系統函數會取到精度達微秒的時間值,
所以若是只想取得只有 yyyymmdd 部分或是 yyyymmdd hh:mm:ss 部分的時間值就需要加工處理
我們可以利用 Convert 型別轉換函數來處理

語法:CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

select GetDate()
,CONVERT(datetime,CONVERT(char(10), GetDate(),111),111) as YMD
,CONVERT(datetime,CONVERT(char(11), GetDate(),111) + CONVERT(char(8), GetDate(),108),111) as YMDHMS

其中若是 GetDate() = 2005-02-06 11:22:33.456
則 YMD = 2005-02-06
而 YMDHMS = 2005-02-06 11:22:33

另外在 MS SQL 2000 支援較多的 style 格式參數,可參考線上手冊。

如果在 SQL 2000 Server 環境經常使用的話,可以建立成使用者自定函數

CREATE FUNCTION dbo.getDateYMD
(@dt datetime )
RETURNS datetime
AS
BEGIN
RETURN ( CONVERT(datetime,CONVERT(char(10), @dt,111),111) )
END

go

CREATE FUNCTION dbo.getDateYMDHMS
(@dt datetime )
RETURNS datetime
AS
BEGIN
RETURN ( CONVERT(datetime,CONVERT(char(11), @dt,111) + CONVERT(char(8), @dt,108),111) )
END

這樣就可以用下列語法查詢

select getDate(), dbo.getDateYMD(getDate()), dbo.getDateYMDHMS(getDate())

Leave a Comment

MS SQL 6.5 如何得知 Client 連線到 Server 所使用的 NET Library ?

MS SQL Server 6.5:
在 Master.dbo.sysprocesses 資料表中的 net_library 欄位
NetLibrary Entry
================
SSNMPN60.dll –Named Pipes
SSMSSO60.dll –TCP/IP
SSMSRP60.dll –Multi-Protocol

Leave a Comment

[DB] MS SQL 6.5 安裝後預設會建立的 Device 與 Database

預設會建立的 Device 列表:

master
MSDBData
MSDBLog
TEMP_DB

預設會建立的 Database 列表:

master – 用於控制使用者資料庫以及 SQL Server 的運作。
model – 使用者資料庫樣板,所有新建立的使用者資料庫均會依此建立。
msdb – 存放各種 SQL Executive Services 相關的設定。
pubs – 為一個範例資料庫,安裝完後若不需要可直接刪除。
tempdb – 提供存放運算過程中產生的暫時性 Table 或其他需要儲存空間的運算。

上列的 Database 除了msdb 的 data 位於 MSDBData device 而 log 位於 MSDBLog device 外,其於 database 均位於 master device 上。

Leave a Comment

[DB] MS SQL 6.5 發現有 Database 的狀態為 Suspect 如何處理?

因為想移動 MS SQL 6.5 的其中一個資料庫到速度較快的磁碟機,所以在 Query 工具下改好 master.sysdevices 中的紀錄後,停止 SQL Server 服務並將 Data 與 Log 的 Device 檔案移動好,然後再啟動 SQL Server 服務。卻發現在 Enterprice Manager 程式內所移動的 Database 的圖示變成灰色並且顯示 Suspect 的訊息。重新檢查過程發現是因為改 master.sysdevices 的 phyname 時所指定的路徑有誤,所以 SQL Server 找不到檔案所以造成問題。

不過 Enterprice Manager 程式沒有支援解決 Suspect 的功能,必須手動處理步驟如下:

1. 確定 Database 所在的 Device 檔案都存在。
2. 在 ISQL/W 下開啟 MSSQL\Install\Instsupl.sql 並執行。
3. 執行下列指令:

use master
go
exec sp_resetstatus suspect_db_name

4. 重新啟動 SQL Server
5. 確定 之前 Suspect 的 Database 是否已恢復正常。
6. 執行 dbcc newalloc, dbcc textall, and dbcc checkdb 檢查 Database 狀況。

Leave a Comment

  • 工商服務

    廣告讀取中...
  • 近期留言

  • 標籤

  • 彙整