顯示具有 SQL Server篇 標籤的文章。 顯示所有文章
顯示具有 SQL Server篇 標籤的文章。 顯示所有文章

2012年4月12日 星期四

How to Use SQL Azure(如何使用SQL Azure建立SQL資料庫)

SQL Server是可以建置在微軟雲端Windows Azure上的,這樣的話只要把資料庫放雲端,所有的AP應用程式就可以直接去存取Azure上的SQL,以達到資料共用,也不必自行維護SQL SERVER伺服器了,這是一舉多得的設計方式。

那麼該如何使用Azure上的SQL,其實設定的步驟很簡單,亞當斯筆記一下建立的過程,各位可以參考以下步驟:

1. 使用建立功能,建立一個新的SQL資料庫伺服器

image

2.選擇伺服器所在的區域,例如選擇:East Asia

image

3. 設定存取伺服器的帳號和密碼,預設密碼設定要符合複雜密碼規範

image

4.點選下一步之後,設定防火牆規則,按加入

image

5.設定規則名稱以及IP

image

6.記得勾選:允許其他Windows Azure 服務存取這部伺服器

image

7.接著就可以建立SQL資料庫了:

image

image

8.當資料庫建立完成之後,如果將來其他應用程式要存取此資料庫伺服器,那麼還必須知道連線字串的溝通資料,在資料庫的屬性視窗中,可以點選連線字串的檢視,其中會列出以下幾種連線字串以供應用程式使用:

  • ADO.NET
  • ODBC
  • PHP
  • JDBC

image

2010年5月24日 星期一

由於無法啟動使用者執行個體的處理而無法產生SQL Server 的使用者執行個體。此連接將會關閉

這幾天因為某些需求,必須安裝SQL Server 2005 的其他服務,帥小宇說我的NB開發環境太亂了,好吧!我乾脆狠心把SQL Server 重灌,結果重新安裝好SQL Server 2005 Express後,想要使用VS2008或是VS2010加入SQL項目,就產生了如標題的錯誤:由於無法啟動使用者執行個體的處理而無法產生SQL Server 的使用者執行個體。此連接將會關閉

以前根本沒遇到過這個問題,後來猜想有可能當初安裝SQL Server 2005 Express是跟隨著VS.NET 2005 安裝的,因此有一些設定都直接套用好了,現在我的NB上有VS2005,2008,2010…當重新安裝SQL Server 2005 Express有一些地方沒有對應好,好在google了一下,這問題存在已久,也有很多的解決方式:

最簡單的方式就是 :

1.將服務中的SQL Server 2005 Express的登入身分改為:Local System

image

image

2.將 C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS 這個資料夾刪除(我的NB環境是Vista…嗚很想換成W7)

當重新開啟Visual Studio建立資料庫的時候,就會自動產生一個新的SQLEXPRESS 資料夾了。而Visual Studio也就可以正常建立SQLEXPRESS 的資料庫了。

由於無法啟動使用者執行個體的處理而無法產生SQL Server 的使用者執行個體。此連接將會關閉

這幾天因為某些需求,必須安裝SQL Server 2005 的其他服務,derrick說我的NB開發環境太亂了,好吧!我乾脆狠心把SQL Server 重灌,結果重新安裝好SQL Server 2005 Express後,想要使用VS2008或是VS2010加入SQL項目,就產生了如標題的錯誤:由於無法啟動使用者執行個體的處理而無法產生SQL Server 的使用者執行個體。此連接將會關閉

以前根本沒遇到過這個問題,後來猜想有可能當初安裝SQL Server 2005 Express是跟隨著VS.NET 2005 安裝的,因此有一些設定都直接套用好了,現在我的NB上有VS2005,2008,2010…當重新安裝SQL Server 2005 Express有一些地方沒有對應好,好在google了一下,這問題存在已久,也有很多的解決方式:

最簡單的方式就是 :

1.將服務中的SQL Server 2005 Express的登入身分改為:Local System

image

image

2.將 C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS 這個資料夾刪除(我的NB環境是Vista…嗚很想換成W7)

當重新開啟Visual Studio建立資料庫的時候,就會自動產生一個新的SQLEXPRESS 資料夾了。而Visual Studio也就可以正常建立SQLEXPRESS 的資料庫了。

2009年10月31日 星期六

SQL資料庫容量檢查(How to check Database reference size?)

這是一段常在開發專案的時候使用的TSQL,用來檢測目前資料庫的資料表中所佔據的容量大約多少,可以用來評估是否執行壓縮,這是亞當斯一位在南亞工務部的朋友所寫的,小弟覺得某些情境下非常實用,在此借花獻佛跟各位分享。

語法如下:

DECLARE @tblname varchar(50)            --資料表名稱(使用者資料表名稱變數)
if exists (select * from dbo.sysobjects
            where id = object_id(N'dbo.#tmpStatics')
              and OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE #tmpStatics   --暫存資料表

CREATE TABLE #tmpStatics (        --建立暫存資料表
  name       varchar(50)  NULL ,  --資料表名稱
  rows       varchar(50)  NULL ,  --資料表現有的資料列數
  reserved   varchar(50)  NULL ,  --資料庫中的物件所配置的空間大小
  data       varchar(50)  NULL ,  --資料所用的空間大小
  index_size varchar(50)  NULL ,  --索引所用的空間大小
  unused     varchar(50)  NULL )  --保留給資料庫中之物件但尚未使用的空間大小
DECLARE cur_TableStatics CURSOR FORWARD_ONLY FOR
    SELECT name FROM sysobjects
     WHERE xtype='U' ORDER BY name               --取得使用者資料表名稱
OPEN cur_TableStatics
FETCH NEXT FROM cur_TableStatics
INTO @tblname
  WHILE @@FETCH_STATUS = 0
  BEGIN 
    INSERT #tmpStatics
      EXEC sp_spaceused @tblname,@updateusage = N'TRUE'    --顯示資料表的相關磁碟空間資訊
    FETCH NEXT FROM cur_TableStatics
    INTO @tblname
  END
CLOSE cur_TableStatics
DEALLOCATE cur_TableStatics

SELECT name,rows,
       CONVERT(NUMERIC(18,2),SUBSTRING(reserved,1,LEN(reserved)-2))/1024 AS Reserved, -- MB
       CONVERT(NUMERIC(18,2),SUBSTRING(data,1,LEN(data)-2))/1024 AS Data,
       CONVERT(NUMERIC(18,2),SUBSTRING(index_size,1,LEN(index_size)-2))/1024 AS Index_Siz,
       CONVERT(NUMERIC(18,2),SUBSTRING(unused,1,LEN(unused)-2))/1024 AS Unused
  FROM #tmpStatics
WHERE rows <> '0'
ORDER BY Data
DROP TABLE #tmpStatics                              

以Pubs資料庫為例,執行完成的結果如下:

image

2009年10月15日 星期四

從DB取出欄位屬性的TSQL語法 for SQL2005

這幾天整理NB準備備份一些資料,因此就在NB上把要備份的資料夾裡面的東西先慢慢Review一遍,發現以往在開發專案有用到一些很不錯的小技巧,為了被這些技巧被遺忘了,還是快點寄下來,以備不時之需的好!

以下這個語法是在SQL2005上將所有的欄位屬性資料列出的TSQL,基本上是一個非常好用的語法:

SELECT
表名       = CASE WHEN A.COLORDER=1 THEN D.NAME ELSE '' END,
表說明     = CASE WHEN A.COLORDER=1 THEN ISNULL(F.VALUE,'') ELSE '' END,
欄位序號   = A.COLORDER,
欄位名     = A.NAME,
標識       = CASE WHEN COLUMNPROPERTY( A.ID,A.NAME,'ISIDENTITY')=1 THEN '√'ELSE '' END,
主鍵       = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE='PK' AND PARENT_OBJ=A.ID AND NAME IN (
SELECT NAME FROM SYSINDEXES WHERE INDID IN(
SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN '√' ELSE '' END,
類型       = B.NAME,
佔用位元組數 = A.LENGTH,
長度       = COLUMNPROPERTY(A.ID,A.NAME,'PRECISION'),
小數位數   = ISNULL(COLUMNPROPERTY(A.ID,A.NAME,'SCALE'),0),
允許空     = CASE WHEN A.ISNULLABLE=1 THEN '√'ELSE '' END,
預設值     = ISNULL(E.TEXT,''),
欄位說明   = ISNULL(G.[VALUE],'')
FROM
SYSCOLUMNS A
LEFT JOIN
SYSTYPES B
ON
A.XUSERTYPE=B.XUSERTYPE
INNER JOIN
SYSOBJECTS D
ON
A.ID=D.ID  AND D.XTYPE='U' AND  D.NAME<>'DTPROPERTIES'
LEFT JOIN
SYSCOMMENTS E
ON
A.CDEFAULT=E.ID
LEFT JOIN
sys.extended_properties G
ON
A.ID=G.major_id AND A.COLID=G.minor_id 
LEFT JOIN
sys.extended_properties F
ON
D.ID=F.major_id AND F.minor_id=0
ORDER BY
A.ID,A.COLORDER

2008年3月19日 星期三

SQL Database Publishing Wizard整合VS2008

上一篇文章提到Microsoft SQL Server Database Publishing Wizard 1.1的簡單使用方式,事實上安裝完之後,它已經整合到Visual Studio 2008中,也就是說你可以在Visual Studio 2008的資料連結功能中,直接把可連結的資料庫直接轉成完整的Script檔唷。

以下為Server 資料庫發行精靈整合使用Visual Studio 2008的步驟:
1.在有裝Visual Studio 2008的電腦上安裝Microsoft SQL Server Database Publishing Wizard 1.1
2.打開Visual Studio 2008新增一個專案,這邊亞當斯新增一個叫「DemoWindows」的Windows應用程式專案。
3.打開伺服器總管,在資料連結加入一個新的資料連結,連到想產生程式檔的資料庫,這邊選Northwind。
4.選取Northwind連線,按下右鍵,選擇「發生至提供者」,就可以開啟Server 資料庫發行精靈。

SQLVS01
5.接下來只要按照上一篇所列的步驟,逐步執行即可。

如需使用方法的進一步詳細資訊,請參閱 http://www.codeplex.com/Wiki/View.aspx?ProjectName=sqlhost&title=Database%20Publishing%20Wizard (英文)

2008年3月18日 星期二

SQL Server Database Publishing Wizard 1.1

以往亞當斯在開發專案時,或是準備課程時,有時候需要將一個資料庫移轉到另一台SERVER上使用,可是SQL Server預設所提供的功能,只能針對資料庫中的物件產生Script,然而可惜的是這些Script都只包含物件的Schema,而沒有包含資料的資料。舉個例子:在上線SQL Server上的Northwind資料庫,我要移轉到另一台Server上面開發測試,這時候你可以使用SQL Server的產生指令碼來產生Script,到另一台跑完這些Script之後會發現,哇咧~只有資料庫和資料表咧,資料呢?根本沒有資料,對吧!!這時候百般無奈在心頭阿~如果開發者是使用伺服器等級的資料庫那還OK,可以用匯入、匯出來解決(不過亞當斯覺得這個方法還是有點遜...Orz)。

偏偏亞當斯裝的是SQL Server EXPRESS(窮人家小孩,只裝得起免費又好用的 XD ),那麼就算是有裝管理工具:SQL Server Management Studio Express,但不巧的是SQL Server Management Studio Express沒有匯入、匯出的功能,所以遇到這種問題時,真的很頭大。總希望,可以有一個功能就直接把Database中的資料和結構全部產生,問題是,就連SQL Server 2005都沒有這樣的功能,還好,帥小宇有跟亞當斯說,微軟網站提供一個免費又好用的工具給亞當斯用,用過的都知道讚啦!這個小工具就是:Microsoft SQL Server Database Publishing Wizard 1.1(SQL Server 資料庫發行精靈)。

SQL Server 資料庫發行精靈提供一個方法,可以將資料庫發行到 T-SQL 指令碼,重點是:它可以選擇直接與 Visual Studio 2005 及 (或) Visual Web Developer 2005 整合,使開發環境中的資料庫更容易發行。

下列簡單記錄一下使用步驟:
1.由上列網址下載完後,在你的電腦執行安裝,一直都按下一步至完成。
2.從開啟應用程式選單中,開啟資料庫發行精靈。 SQL01
3.選擇伺服器來源並且設定認證方式,在此亞當斯挑選localhost的資料庫(這個環境是有SQL Server 2005,因為亞當斯是在MOSS的環境中測試的,如果只有EXPRESS一樣的做法唷)。 SQL02
4.接著選擇要產生Script的資料庫,在此亞當斯選擇大家最常用的Northwind! SQL03
5.最後決定輸出的位置,如:C:\Temp\InstallNorthwind.sql,這樣就大功告成了,按下完成直行轉換程式碼。
SQL04 將來只要將這份InstallNorthwind.sql複製到另一台SERVER上RUN一下,整個資料就過去了,超好用的!分享給各位知道一下囉!