顯示具有 資料庫 標籤的文章。 顯示所有文章
顯示具有 資料庫 標籤的文章。 顯示所有文章

2012/08/01

[轉]SQL SERVER 2000 事件探查器无法暂停及停止的解决办法

http://servicehome.ufida.com.cn/space/viewspacepost.aspx?postid=387
http://www.zu14.cn/2010/06/29/sql-server-profiler-can-not-stop-or-pause/

SQL SERVER事件探查器虽好用,可有的服务器上会出现针对本地数据库(local)启动事件探查器后无法暂停及停止的问题(一旦暂停或停止就长时间没响 应),出现这个问题主要原因是由于事件探查器默认使用安装SQL SERVER时记录下来的本地计算机名来访问本地数据库,一旦安装SQL SERVER后修改了计算机名,就会出现事件探查器能启动不能停止的问题。

   治标的解决办法:使用计算机名或IP来使用事件探查器连接数据库,而非用(local),则能正常暂停及停止了。

   治本的解决办法:更新SQL SERVER中记录的计算机名。打开master数据库的sysservers表,修改srvname字段及datasource字段为当前计算机名(由 于是系统表,默认不允许修改,所以修改前需要先进行设置:在企业管理器中的(local)节点点鼠标右键,“属性”-“服务器设置”,勾选“服务器行为”中的“允许对系统目录直接进行修改”)。

2012/07/25

SQL Server月份相減跨年度的計算方法

SET @YY='2012'
SET @MM='03'
SET @MM=@MM - 5

  IF @MM <= 0
  BEGIN
      SET @YY=@YY - 1
      SET @MM=@MM + 12
  END

雖然好像有更好的作法,但找到之前還是將就點吧

2012/04/10

High Five - SQL Complete 介紹

還記得之前介紹過的「SQL Pretty Printer:好用的 SQL Formatter 工具」嗎?

這次來介紹 DBA 的好朋友 - Devart 公司所出品的「SQL Complete」

What is SQL Comlete?
Devart的Demo圖片已經完整呈現這款工具的概念了!
圖片擷自 Devart 官方網站
簡單的說,就是自動完成的工具

當然還有更多額外的工具

我們先來看與SQL Pretty Printer比較吧:
參賽者
SQL Complete
(Express Version)
SQL Pretty Printer
智慧感知功能
Smart Intellisense
V
X
提供表格物件名稱
Name suggestions for major objects
V
X
提供函式名稱
Name suggestions for advanced objects
部份提供
Partial Support
X
智慧篩選清單
Smart filtering in the suggestion list
V
X
輸入關鍵字後的內容建議
Context-sensitive suggestion of keywords
部份提供
Partial Support
X
資料庫名稱建議功能
Database context detection
V
X
依照SELECT, DML, DROP, EXEC, SET USE 語法的上下文提供建議清單
Context-sensitive object suggestions for SELECT, DML, DROP, EXEC, SET, and USE statements
V
X
提供函式所需參數種類及數量
Parameter information for functions
V
X
快捷物件資訊(如表格所含的欄位及格式內容)
Quick object information
部份提供
Partial Support
X
SQL 格式化處理
SQL formatting
部份提供
Partial Support
V
執行當前語法
Execute current statement
V
依賴SSMS
內建功能
Dependent SSMS
Built-in features
半透明的訊息箱
Semi-transparent view of the suggestion box
V
X
提供的SQL文字組譯成各種語法
(SQL to c#, Dephi, C++ string etc)
X
V
提供各語法轉成標準SQL語言
(Any language to SQL)
X
V
Single License Price ($$$)
Free
$50

與 SQL Complete Express 版本比較時,雖然 SQL Pretty Printer 有提供較為完整的 SQL Formatter (SQL 格式化處理) ,但 SQL Complete 提供了更多有利於DBA工作的工具,整體來說:

SQL Pretty Printer 適合給 Programmer 使用

SQL Complete 適合給專業 DBA 來使用。

注意!我只是拿 Express 版本來作比較,Standard版當然是更加強大的!(詳情請參閱:Editions of dbForge SQL Complete)

你對SSMS內建的半吊子功能感到綁手綁腳的嗎?
那 SQL Complete 一定能讓你的工作更加得心應手!

2012/4/16 補充:
很高興 Devart 公司能看到這篇文章,他們也提供了很多訊息給我,關於 SQL Complete 的核心價值是在於它的

「智慧感知」(Smart Intellisense) 功能

所謂的智慧感知(Smart Intellisense),就是使用者在輸入SQL語法時,SQL Complete會自動判斷上下文、分析使用者輸入的指令, 然後智慧地填入下一個指令, 讓使用者不用熟背 SQL 指令 也能如同使用新注音一樣的熟練、方便。

SSMS 雖然有內建 Microsoft IntelliSense (Stupid IntelliSense),但是它的功能遠比不上 SQL Complete (Best Smart)

SQL Complete 先進的智慧感知功能對於初學入門的使用者來說,這套工具仍然能保證讓你的功力在短時間內獲得提升,而對於已有基礎的進階使用者,SQL Complete更可以縮短你的工作時間

SQL Complete 絕對是一個值得入手的產品!

很高興你可以看到這一行,還等什麼?趕快去嚐試一下吧!

2012/04/17 再補充:
剛剛看到 Devart 關於 SQL Complete 的教學影片,來分享一下!

2010/09/28

Firebird 流水號可能遇到的問題

1. CREATE SEQUENCE 和 CREATE GENERATOR 是一樣的.
2. 必須搭配 Trigger 使用.
3. 刪除一列後會造成 Sequence 破碎 (可以再開一個table來存刪除的 Sequence,再新增的時候可以參考之)

2010/08/13

深入資料庫之美學...這本好像不錯耶~~~

前幾天在逛網,看到有blog在介紹資料庫理論的一本書

C.J.Date 的新書 ─ 深入資料庫之美學



原來它的英文名字是「Database in Depth」,彼岸網站上也有相關的電子書供應 ,不過是原文的chm格式…以我的英文程度,k完大概要花上個數年時間吧!(汗)

不過Google有和台灣歐萊禮合作,在「Google電子書--深入資料庫之美學」有提供樣品給網友試讀。

不出所料的,讀了前幾頁就暈倒了……可見是修行還不夠啊~~~(淚奔)

到底該不該買這本書呢……………?

另外,Indy網站也有出「Indy in Depth」,不知道中文書名(如果有出的話)會不會是「深入Indy之美學」呢?(笑)

2010/03/01

No BOOLEAN field in Firebird?

No BOOLEAN field in Firebird?


There is no built-in boolean field, but you have several options:

1. use char(1)
2. use smallint
3. use domains

Domains are probably the best solution. You can create domain like this:


CREATE DOMAIN BOOLEAN
AS SMALLINT
CHECK (value is null or value in (0, 1));


Later in table definition you can refer to it as a regular datatype.


CREATE TABLE t1
(
C1 VARCHAR(10),
B1 BOOLEAN,
B2 BOOLEAN NOT NULL,
...
);


If you use a connectivity library like OleDB under .Net, you can override the OleDB provider's GetSchema method, so the DataTables you get from queries have native .Net booleans.

2010/02/05

Database's foreign key!

The foreign key is very importent in db designing.

Recently test my firebird db system, I used IB Expert create a table and set up some fields, type and primary key.

After I set Constraints->Foreign keys-> Set default rule->On Field, FK Table, FK Field etc.

"Update Rule" and "Delete Rule"is very interesting.

You can set: NO ACTION, CASCADE, SET NULL and SET DEFAULT. It not like MySQL after setup rule but can not used. Is very nice!

2010/01/07

SQL-92: CONSTRAINT 用法

這兩天在找Table的正規化方法找了老半天,所幸和Carey大聊過之後,有了初步的認知:

原來複合Key也是可以當作Table唯一的主Key呀!

於是就開始尋找複合Key的建立方式,後來在CONSTRAINT SQL運用中找到很漂亮的介紹。

好像是與Oracle有關,於是又在國外找到了與Firebird相關的SQL內容:
FireBird Database Constraints

以下是節錄部分的內容:
CREATE TABLE DAILY_PRODUCT_SALES (
DATE_OF_SALE DATE NOT NULL,
PRODUCT_ID INTEGER NOT NULL,
UNITS_SOLD INTEGER NOT NULL CHECK (UNITS_SOLD >= 0),
CONSTRAINT UNIQUE_DAILY_SALES
PRIMARY KEY (DATE_OF_SALE, PRODUCT_ID)
);

嗯嗯,看起來與Oracle差不多,或許這也是Ansi SQL-92的標準語法也說不定。

2009/09/01

讀書心得:SQL語法查詢百科








其實,這本書買來迄今也大概有兩年的時間,一直沒有機會好好拿來細讀。

在我的觀念中,這本書被我歸類在「工具書字典類」的範圍中,但這本書從來沒有在我需要的時候給我任何的貢獻…
實在是很奇怪呀!為什麼我要找的資料都找不到?

在不斷開發程式的過程中,我仍然是在無盡的網海中找尋我需要的SQL語句。

最近終於是閒下腳步了,想把我之前買來貢在書架上的書拿來看一看,了解自己在這段期間學了什麼。
或許也能從中學到些技能,碰撞出一些設計上的火花也說不定。

於是就翻開書本上的序,開始一頁一頁的精讀。

其實這本書我也翻了幾次,但可能我翻到的地方都是很簡單的說明,
於是也不覺得這本書內容有多充實,很想趕快看完後拿去捐給圖書館去危害鄉民 XD。

翻了前兩章之後才發現,哇,原來還能有這樣的寫法。
在簡單且平談的文字敘述間,夾雜著技術層面的內容,不精讀的話,還真是無法領略其中的奧妙。

每一個小議題都會將Oracle與ACCESS兩者資料庫的語法不同之處詳細解說,對於想雙修的人來說無疑是很好的學習書。
而行政文書人員也可以藉由書上access的範例來學習單機資料庫的應用方式來學習改善日常文書效率的做法。

沒有繁文縟節的資料庫理論,而是深入淺出的純SQL探討書籍。

每一個章節的後面都會有很簡單但卻又很辦公室生活(?)的練習題,在練習的過程不僅學到SQL,也學到能夠活用SQL的技巧。

往往在學完一個章節後,又迫不及待地翻開下一章繼續閱讀。

這是我讀過「C++ BUILDER資料庫程式設計 - 人事薪資系統實作」一書後,第二本會讓我有這種衝動的書籍。
為了它,我還丟下我家的小公主去圖書館偷偷K的咧。

全書的主旨是在「如何利用SQL來有效率地得到最需要且正確的結果」,以結果論來看,我認為這本書到最後也沒有脫離這個原則。

如果有心要學SQL的話,這本是非常有學習價值的一本書,拿來收藏也不錯。
(謎之音:剛剛是誰說要把這本書拿去捐掉?)

最後,寫一些關於這本書地不負責任的優缺點吧!
優點:
1.學習曲線平穩,相當適合初學者入門,而後段對熟手也有觀念上的修正
2.每一個議題都會有ORACLE與ACCESS對照內容,一書二吃,學習自由度頗高
3.練習題很口語且較符合辦公室的應用場合,對SQL語句的活用很有幫助
4.翻譯的質感佳,不會有不知所云的觀感

缺點:
1.沒有各個SQL語句的索引,必須採用「人腦索引」來解決這個問題,如果這本書再版能把索引加進去,這本書適用的範圍就更廣了
2.ORACLE與ACCESS的SQL語句有很多都不相同,兩邊都解釋的結果就是頁數變多了,書變重了(這就是雙面刃啊)

所以嚴格說起來,這本書應該不是定位在工具書,而是學習書,這本書的書名會讓人有所誤會 (笑)
不過,看完這本書的讀者應該會把這本學習書轉成工具書來使用吧!太實用了!

題外話,正在強迫我家的小公主學習中,哈!

2009/07/29

Firebird的Show Tables?那是MySQL的指令啦!

出處:FAQ for Firebird Users Migrating From MySQL

原文如下:

How to list all tables in a database?

In MySQL, you can do SHOW TABLES. You can use the same in Firebird's isql command-line tool, but nowhere else. However, this can be done by querying Firebird's system tables:

SELECT RDB$RELATION_NAME FROM RDB$RELATIONS;

This query will show you both system and user tables. To select user tables only, use this:

SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG = 0;

Note for advanced users:
The above query will select both user tables and views. To select tables only use this:

SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG = 0 AND RDB$VIEW_BLR IS NULL;

有看不懂的…再寫個意見給我吧。

2009/07/14

Firebird中,有趣的Stored Procedure

今天閒來無事,找找Firebird embedded上有沒有什麼新奇的東西,仔細想想,Stored procedure好像還沒玩過,拿來玩玩也不賴。

首先,看到的是這個網頁
Stored Procedures in Firebird

使用重點就是
* Stored Procedures can perform an action and do not return any data
它能做傳值和不傳值的動作。(資料庫不就只有這樣的功能?)
* "Select" Procedures return tables, just like SELECT, Tables or Views. They can be used like a table reference in a SELECT statement:
SELECT a, b FROM procedurename (params) ...
語法非常像SQL中select的語法
* To be able to call a procedure, the user must have EXECUTE rights (granted by GRANT/REVOKE)
使用Procedure的人一定要有EXECUTE的權限。

利用文中的範例做了兩個預存程序,發現有一點點的小錯誤。
原來「SUSPEND」就像是C++的「RETURN」指令,某範例少了這行,不會有回傳值。

總之,做完之後再拿到BCB上去試,發現,不一定要使用TSQLStroedProc才能呼叫它,用TSQLQuery就可以輕鬆直上了!

哈哈!真是有趣的東西呀!(謎之音:有趣的點是在哪邊?)