總網頁瀏覽量

基礎Note

關於我自己

我的相片
人生的必修課是接受無常,人生的選修課是放下執著。
顯示具有 SQL server Management 標籤的文章。 顯示所有文章
顯示具有 SQL server Management 標籤的文章。 顯示所有文章

2015年12月11日 星期五

【SQL】【教學】要用Windows驗證登入SQL Server時,想知道伺服器名稱要填什麼

****************************************
*          電腦環境:Windows 7 64bit                *

*          SQL Server Management Studio版本:2008 R2          *
****************************************

安裝SQL Server時輸入Database Engine金鑰

安裝完成後

開始>Microsoft SQL Server 2008 R2>組態工具>Reporting Services 組態管理員


就會彈跳出↓視窗顯示伺服器名稱了


開始>Microsoft SQL Server 2008 R2>SQL Server Management Studio


用↓的項目登入本機SQL server




2015年12月7日 星期一

【SQL】【教學】資料庫 資料表內欄位名稱修改

****************************************
*          電腦環境:Windows 7 64bit                *
*          SQL Server Management Studio版本:2008 R2          *
****************************************

錯的↓
ALTER TABLE 資料表名稱 CHANGE 舊的欄位名稱 新的欄位名稱 新欄位名資料種類
ALTER TABLE Customer CHANGE Address Addr char(50)
錯的↓
ALTER TABLE 資料表名稱 RENAME COLUMN 舊的欄位名稱 TO 新的欄位名稱
ALTER TABLE Customer RENAME COLUMN Address Addr char(50)
錯的↓
EXEC sp_rename '資料表名稱.舊的欄位名稱','新的欄位名稱','column'  
EXEC sp_rename 'Customer.Address', 'Address', 'Addr', 'column'
錯的↓
UI介面操作
甚至還有人說SQL Server沒辦法修改欄位名稱,只能砍掉重建
錯的↑

對的↓
方法一:
1. 新增查詢
SP_RENAME '資料庫.dbo.資料表.舊的欄位名稱' ,
    '新的欄位名稱',
    'COLUMN'

方法二:
1. 新增查詢
USE [databaseName]
GO
sp_RENAME '[objectName].[tableName].[oldColumnName]', '[newColumnName]' , 'COLUMN'
GO


2.
該資料庫>滑鼠右鍵>編寫資料表的指令碼為>SELECT至>新增查詢編輯器視窗>按F5執行
前面用指令改的欄位名稱,此時顯示「資料行名稱無效」

方法一:
(1) 該資料庫卸離
(2) 關掉SQL Server
(3) 開啟SQL Server
(4) 附加剛剛的資料庫
(5)
該資料庫>滑鼠右鍵>編寫資料表的指令碼為>SELECT至>新增查詢編輯器視窗>按F5執行

方法二:
(1) 關掉SQL Server
(2) 開啟SQL Server

4. 正常了= =+











2015年11月25日 星期三

【SQL】【教學】【還原】SQL Server 2008 R2 .bak→.mdf

****************************************
*          電腦環境:Windows 7 64bit                *
*          SQL Server Management Studio版本:2008 R2          *
****************************************


情境:server上的db想複製一份到local端做測試開發用

前工作:server上的db已備份出.bak檔

說明:在SQL Server要作資料庫還原時,需要首先建立一個資料庫(舊的也行總之要先有一個資料庫實體),然後才能可以進行資料庫還原

開始動作:
 1. 開啟SQL Server Management
 2. 在「資料庫」按滑鼠右鍵 > 新建一個資料庫(假設我命名為AC_Manager)
 3. 在「AC_Manager」按滑鼠右鍵 > 工作 > 還原 > 資料庫
 4. 在接下來的畫面選.bak的路徑要還原
 4-1. 發生錯誤備份組包含現有的 '' 資料庫以外的資料庫備份
 5. 在「AC_Manager」按滑鼠右鍵 > 工作 > 還原 > 資料庫

 6. 選到要用來還原的.bak


  5. 切到「選項」,打勾「覆寫現有的資料庫」

 7. 最終完成


4-1. 解法:
 (1) 「資料庫」按滑鼠右鍵 > 新增查詢

 (2) 輸入指令
  '資料庫離線
  ALTER DATABASE [資料庫名稱] SET offline

  restore database 資料庫名稱
  from disk = '.bak的路徑'
  with
  move '資料庫名稱' to '資料庫名稱.mdf的路徑',
  move '資料庫名稱_log' to '資料庫名稱_log.LDF的路徑',
  NoRecovery,
  Replace
 go
 並執行,範例可以看下圖
 執行成功了,就會出現「幾秒內成功處理了 多少頁(0.000 MB/sec)

 (2-1) 顯示(正在還原....) 很久沒進展



 (3) 「資料庫」按滑鼠右鍵 > 新增查詢
   '讓資料庫回到線上
   ALTER DATABASE [資料庫名稱] SET online
   按F5執行

(2-1) 解法:

((1))先查詢卡住的那個資料庫的狀態:select state_desc from sys.databases where name = '資料庫名稱'
顯示RESTORING


((2))使用 REPLACE  選項 (將會遺失 CheckPoint 時間點以外的資料,需謹慎使用)
RESTORE DATABASE PIS_WEBDB
FROM DISK = .bak檔的路徑'
WITH REPLACE, RECOVERY


((2-1))錯誤訊息 5133,層級 16,狀態 1,行 1
檔案 "D:\DataFile\TW_Patents.mdf" 的目錄查閱失敗,有作業系統錯誤 2(系統找不到指定的檔案。)。
訊息 3156,層級 16,狀態 3,行 1
檔案 'TW_Patent' 無法還原到 'D:\DataFile\TW_Patents.mdf'。請使用 WITH MOVE 來識別該檔案的有效位置。
訊息 5133,層級 16,狀態 1,行 1
檔案 "D:\LogFile\TW_Patents_1.LDF" 的目錄查閱失敗,有作業系統錯誤 2(系統找不到指定的檔案。)。
訊息 3156,層級 16,狀態 3,行 1
檔案 'TW_Patent_log' 無法還原到 'D:\LogFile\TW_Patents_1.LDF'。請使用 WITH MOVE 來識別該檔案的有效位置。
訊息 3119,層級 16,狀態 1,行 1
計劃 RESTORE 陳述式的時候識別出問題。先前的訊息可提供詳細資料。
訊息 3013,層級 16,狀態 1,行 1
RESTORE DATABASE 正在異常結束。

RESTORE DATABASE CN_MIX
FROM DISK = '.bak檔路徑'
WITH REPLACE, RECOVERY



((3))再查一次卡住的那個資料庫的狀態:select state_desc from sys.databases where name = '資料庫名稱'
顯示ONLINE

((4))雖然左側(正在還原....)的狀態沒變,重新整理就好了

((2-1))解法:
(((1)))
RESTORE DATABASE CN_MIX
FROM DISK = N'.bak檔路徑'
WITH    
File = 1 ,     
RECOVERY ,     
REPLACE ,    
MOVE 'CN_MIX'
TO N'.mdf檔要擺放的路徑',    
MOVE 'CN_MIX_Log'
TO N'.ldf檔要擺放的路徑',    
STATS = 10







2015年11月24日 星期二

【SQL】【遠端桌面】

****************************************
*          電腦環境:Windows 7 64bit                *
*          電腦環境:Windows server 2014               *
****************************************

遠端桌面連不上
兩台電腦都安裝TeamViewer來作檔案傳輸(200多GB=20個資料庫=74個檔案)














2015年11月20日 星期五

【SQL】【錯誤處理】此後端版本不支援設計資料庫圖表或資料表。 (MS Visual Database Tools)

****************************************
*          電腦環境:Windows 64bit                                                                    *
*          SQL Server Management Studio版本:2008                *
****************************************

連線登入SQL Server 2014
要建立資料表時出現error↓

點「安全性」>「登入」>自己的帳號也出現error↓


原來是因為每一版本 SQL Server都不相容了...............................................................!!!!!




2015年11月19日 星期四

【SQL】【安裝】SQL Server安裝好...................................花了好幾天

****************************************
*          電腦環境:Windows Server 2012                                                        *
*          SQL Server Management Studio版本:2014                *
****************************************

不能截圖沒有照片不能截圖沒有照片不能截圖沒有照片不能截圖沒有照片不能截圖沒有照片不能截圖沒有照片

➊ 灌Windows Server參考SW_DVD5_Win_Svr_Std_and_DataCtr_2012_64Bit_ChnTrad_Core_MLF_X18-27648.ISO

➋ 裝網卡等驅動程式又不知道型號參考Input_Driver_756GC_WN64_19.0.15.2_A00.EXE

➌ 灌SQL Server參考SW_DVD9_SQL_Svr_Standard_Edtn_2014w_SP1_64Bit_ChnTrad_-2_MLF_X20-29018.ISO

➍ 執行setup

➎ 安裝>「新增SQL Server獨立安裝或成功能加入至現有安裝」

 ⊙輸入產品金鑰
 ⊙接受授權

 ⊙SQL Server功能安裝
 ⊙全選(但是Distributes Replay Contraller和Distributes Replay Client不要裝)

 ⊙預設執行個體MSSQLEXPRESS
 ⊙混合模式
 指定SQL管理員
 FileStream
 ☑啟用
  ☑啟用
   Windwos 共用名稱MSSQLSERVER
   ☑允許遠端
 伺服器組態
 ⊙多維度和資料採礦模式
  加入
 Report Services原生模式
 ⊙安裝和設定
 Reporting Services SharePoint整合模式
 ⊙只安裝
➏
➐
➑
➒
➓







2015年11月18日 星期三

【SQL】【安裝&設定】SQL Server安裝好後允許遠端連線的設定

****************************************
*          電腦環境:Windows Server 2012                                                        *
*          SQL Server Management Studio版本:2014                *
****************************************

1. 開啟 SQL Server 組態管理員↓

(Windows Server預設沒有「開始」>「執行」可以找,回到主UI(非桌面)可以直接看到(Windows Server沒辦法截圖阿!請想像))

SQLEXPRESS的通訊協定>全部啟用

SQL Server服務>SQL Server Browser也要啟用


2.防火牆的設定


 由控制台進入>Windows 防火牆


進階設定


輸入規則


連接埠


特定本機連接埠就輸入1433啦......




取一個自己可以辨識的名字


3. Server端的SQL Server要建立登入者帳密



 

4. 這樣client就可以用這組帳密連到Server的db了!!!!!!!!!




2015年10月18日 星期日

【SQL Server Management Studio】語法:圖解LEFT JOIN

本人還是喜歡看圖說故事
要用滿山滿谷的code去想像畫面太辛苦了

LEFT JOIN 語法 (SQL LEFT JOIN Syntax)

SELECT table_column1, table_column2···
FROM table_name1
LEFT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name;




2015年10月14日 星期三

【SQL Server Management Studio】UNION 運算子 (SQL UNION Operator)

UNION 運算子用來將兩個(以上) SQL 查詢的結果合併起來,而由 UNION 查詢中各別 SQL 語句所產生的欄位需要是相同的資料型別及順序。
UNION查詢只會返回不同值的資料列,有如SELECT DISTINCT。
UNION就是像是OR(聯集),如果紀錄存在於第一個查詢結果集或第二個查詢結果集中,就會被取出。
UNION與Join不同的地方在於,Join是作橫向結合(合併多個資料表的各欄位);而UNION則是作垂直結合(合併多個資料表中的紀錄)。

UNION 語法 (SQL UNION Syntax)

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2;
UNION查詢返回的資料集欄位名稱,通常會依據第一個SELECT查詢的欄位名稱。

UNION 運算子查詢實例 (Example)

這是公司在台灣地區銷售的產品資料表「products_taiwan」:
P_IdP_Name
1LCD
2CPU
3RAM

這是公司在中國大陸地區銷售的產品資料表「products_china」:
P_IdP_Name
1Keyboard
2CPU
3LCD

現在我們想查出公司所有產品類別的資料,我們可以作一個 UNION 查詢:
SELECT P_Name FROM products_taiwan
UNION
SELECT P_Name FROM products_china;

查詢結果如下:
P_Name
LCD
CPU
RAM
Keyboard

UNION ALL

相反的,UNION ALL 則會列出所有的資料,不論是否重複。

SQL 查詢...
SELECT P_Name FROM products_taiwan
UNION ALL
SELECT P_Name FROM products_china;

查詢結果如下:
P_Name
LCD
CPU
RAM
Keyboard
CPU
LCD

2015年10月13日 星期二

【SQL Server Management Studio】運算子 (SQL Operators)

算數運算子 (Arithmetic Operators)

運算子用途範例結果
+加法1 + 23
-減法5 - 41
*乘法6 * 636
/商數8 / 51.6
%餘數8 % 53

邏輯運算子 (Logical Operators)

運算子語意
AND且
OR或
NOT非

比較運算子 (Comparison Operators)


運算子語意範例結果
<小於3 < 5True
>大於8 > 1True
<=小於等於20 <= 10False
>=大於等於4 >= 6False
=等於2 = 2True
<>不等於7 <> 6True
BETWEEN在某個範圍內  
LIKE符合模式條件  
IN值存在於IN集合中 



2015年10月7日 星期三

【SQL Server Management Studio】簡單介紹

Microsoft® SQL Server™ 是資料庫管理和分析系統,用於電子商務、企業營運和資料倉儲解決方案。

SQL Server Management Studio 是用來撰寫 Transact-SQL、MDX、DMX 和 XML 查詢及 SQLCMD 命令的整合式開發環境。

下載範例資料庫(ex:我的是2008 R2的版本)
http://msftdbprodsamples.codeplex.com/releases/view/105902

下載後解壓縮會看到這兩個檔案
AdventureWorksDW2008R2_Data.mdf
AdventureWorksDW2008R2_log.LDF

將檔案丟到Microsoft SQL Server的安裝路徑下(ex:我的是D:\Microsoft SQL Server\MSSQL10_50.LISASST\MSSQL\DATA2)

將資料庫掛上









若要離線撰寫程式碼,然後連接到不同的伺服器

  1. 在 Management Studio 工具列上,按一下 [Database Engine 查詢] 來開啟查詢編輯器。




增加縮排

  1. 在 [連接到 Database Engine] 對話方塊中,按一下 [取消]。 此時會開啟查詢編輯器,查詢編輯器的標題列會指出您尚未連接到 SQL Server 的執行個體。
  2. 在 [程式碼] 窗格中,輸入下列 Transact-SQL 陳述式:
    -- Search for a contact
    SELECT 
    BusinessEntityID,
    FirstName, 
    MiddleName, 
    LastName
    FROM Person.Person
    WHERE LastName = 'Sanchez';
    GO

  3. 選取從 BusinessEntityID 到 LastName 的所有文字。
  4. 在 [SQL 編輯器] 工具列上,按一下 [增加縮排] 來同時縮排所有行。



  5. 若要利用相同連接來開啟另一個 [查詢編輯器] 視窗,請在工具列上,按一下 [新增查詢]。

若要將查詢編輯器視窗最大化

  1. 按一下 [查詢編輯器] 視窗中的任何位置。
  2. 按 SHIFT+ALT+ENTER 鍵來切換全螢幕模式和一般模式。
    這個鍵盤快速鍵適用於任何文件視窗。

快捷鍵

  1. Ctrl+U 選取該行

若要同時檢視和操作多個程式碼視窗

  1. 在 [SQL 編輯器] 工具列上,按一下 [新增查詢] 來開啟第二個 [查詢編輯器] 視窗。
  2. 若要同時看到兩個程式碼視窗,請以滑鼠右鍵按一下 [查詢編輯器] 的標題列,選取 [新增水平索引標籤群組]。 此時兩個查詢視窗會以水平窗格出現。




  3. 按一下上方的 [查詢編輯器] 視窗,使其變成使用中狀態,然後按一下 [新增查詢] 開啟第三個查詢視窗。 它會顯示成上方視窗中的索引標籤。
  4. 在 [視窗] 功能表上,按一下 [移至下一個索引標籤群組]。 此時第三個視窗會移至下面的索引標籤群組中。 您可以利用這些選項,以各種不同的方式來設定視窗。