以前有發生過一些奇怪想不到的情形....

乾脆反正有的就記下來...

用一篇記總比每次寫一篇來的好

等真的有辦法遇到一卡車時再來分類好了

*****第一種*****
SQL安裝出現---先前的程式安裝在安裝機制上建立了擱置檔案作業。執行安裝程式前您必須重新啟動電腦
解答:
直接刪掉這個機碼,就可以了!!
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

*****第二種*****
判斷資料表是否存在
解答:
if exists (select * from dbo.sysobjects where id = object_id(N'資料表名稱') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
   drop table 資料表名稱'

*****第三種*****
如何讓 SELECT 查詢結果額外增加自動遞增序號
解答:(這是看章立民老師的文章來的)
USE NorthWind;
GO

/* 方法一*/
SELECT 序號= (SELECT COUNT(客戶編號) FROM 客戶 AS LiMing
                 WHERE LiMing.客戶編號<= Chang.客戶編號),
       客戶編號, 公司名稱
FROM 客戶 AS Chang ORDER BY 1;
GO

/* 方法二: 使用SQL Server 2005 獨有的RANK() OVER () 語法*/
SELECT RANK() OVER (ORDER BY 客戶編號 DESC) AS 序號,
         客戶編號, 公司名稱
FROM 客戶;
GO

/* 方法三*/
SELECT 序號= COUNT(*), LiMing.客戶編號, LiMing.公司名稱
   FROM 客戶 AS LiMing, 客戶AS Chang
   WHERE LiMing.客戶編號>= Chang.客戶編號
   GROUP BY LiMing.客戶編號, LiMing.公司名稱
   ORDER BY 序號;
GO

/* 方法四
建立一個「自動編號」的欄位,然後將資料新增至一個區域性暫存資料表,
然後由該區域性暫存資料表中,將資料選取出來,最後刪除該區域性暫存資料表
*/
SELECT 序號= IDENTITY(INT,1,1), 管道, 程式語言, 講師, 資歷
INTO #LiMing
FROM 問券調查一;
GO
SELECT * FROM #LiMing;
GO
DROP TABLE #LiMing;
GO

/*
方法五
使用 SQL Server 2005 獨有的ROW_NUMBER() OVER () 語法
搭配 CTE (一般資料表運算式,就是 WITH 那段語法)選取序號2 ~ 4 的資料
*/
WITH 排序後的圖書 AS
  (SELECT ROW_NUMBER() OVER (ORDER BY 客戶編號 DESC) AS 序號,
   客戶編號, 公司名稱
   FROM 客戶)
SELECT * FROM 排序後的圖書
WHERE 序號 BETWEEN 2 AND 4;
GO

*****第四種*****
欄位不足長度補零
解答:
方法一
declare @num   int   
set   @num=12
select right(100000+@num,5)   
結果:
00012  

方法二
DECLARE @strNo varchar(4)
SET @strNo = CAST(12 as varchar(4))
SET @strNo = REPLICATE('0',4-LEN(@strNo))+@strNo
print @strNo
結果:
0012

*****第五種*****
Round、Floor、Ceiling函數使用
解答:
四捨五入、無條件捨去、無條件進位
Declare @num1 decimal(10,2)
Declare @num2 decimal(10,2)
Declare @num3 decimal(10,2)

Set @num1 = 121.45
Set @num2 = 121.45
Set @num3 = 121.45
Print Round(@num1,0)
Print Ceiling(@num2)
Print floor(@num3)

結果:
121.00
122
121

利用 ROUND 來截斷
Print ROUND(150.75, 0);
GO
Print ROUND(150.75, 0, 1);
GO
結果:
151.00
150.00

*****第六種*****
SQL Server 已封鎖元件 'Ad Hoc Distributed Queries' 的 STATEMENT
解答:
訊息 15281,層級 16,狀態 1,行 1
SQL Server 已封鎖元件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 之存取,因為此元件已經由此伺服器的安全性組態關閉。系統管理員可以使用 sp_configure 來啟用 'Ad Hoc Distributed Queries' 的使用。如需有關啟用 'Ad Hoc Distributed Queries' 的詳細資訊,請參閱《SQL Server 線上叢書》中的<介面區組態>(Surface Area Configuration)。
解決方式:
sp_configure 'show advanced options',1
reconfigure

sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

參考:http://msdn.microsoft.com/zh-tw/library/ms189631.aspx
arrow
arrow
    全站熱搜

    鴨爸 發表在 痞客邦 留言(0) 人氣()