在Win7中,在工作列程式會顯示最近開啟過的檔案列表,
若不想要此功能的話,可透過下列步驟關閉。
1.於工作列上滑鼠右鍵-->內容
2.切換至 [開始]功能表
3.將 儲存最近開啟的項目並顯示於[開始]功能表和工作列 取消
2012-01-29
2012-01-28
MS SQL-字串函數-CHARINDEX
利用CHARINDEX函數,可抓取字串中指定字串的起始位置,
以方便程式進行字串的相關處理動作。
參考自:MSDN-CHARINDEX
以方便程式進行字串的相關處理動作。
CHARINDEX('BCD','abcde')--不分大小寫 ----------- 2
CHARINDEX('BCD','abcde' COLLATE Latin1_General_CS_AS)--分大小寫 ----------- 0
參考自:MSDN-CHARINDEX
2012-01-20
MS SQL 字串函數-QUOTENAME-字串加上雙引號
利用MS SQL的QUOTENAME函數,
可以方便的將字串以引號包起來,
避免因為一堆引號降低程式碼可讀性,
及降低出錯機會。
參考自:QUOTENAME
可以方便的將字串以引號包起來,
避免因為一堆引號降低程式碼可讀性,
及降低出錯機會。
select QUOTENAME('String','''') --------------------------------------------------------- 'String' (1 個資料列受到影響)
參考自:QUOTENAME
2012-01-19
2012-01-18
MS SQL 建立暫存表格 temp table
在MS SQL中建立暫存表方法有兩種,
1.在tempdb中建立
I.區域-前置詞#-其他連線不可查詢此TABLE
II.全域-前置詞##-其他連線可查詢此TABLE
連線中斷後被清除
批次作業結束後清除
MSDN-CREATE TABLE
建立#TempTable與Declare @TempTable有何差別
1.在tempdb中建立
I.區域-前置詞#-其他連線不可查詢此TABLE
II.全域-前置詞##-其他連線可查詢此TABLE
連線中斷後被清除
Create Table #NOM_tmp ( GPNo varchar(3), DTNo Nvarchar(10), GPNa Nvarchar(10), DTNa Nvarchar(20))2.在記憶體宣告建立
批次作業結束後清除
DECLARE @NOM_tmp TABLE ( GPNo varchar(3), DTNo Nvarchar(10), GPNa Nvarchar(10), DTNa Nvarchar(20))參考自
MSDN-CREATE TABLE
建立#TempTable與Declare @TempTable有何差別
MS SQL Procedure 多個回傳值
上一篇 MS SQL 資料處理時多個回傳值 ,
再延伸到編寫Stored Procedure時,遇到需要多個回傳值的處理方式!
MSDN-CREATE PROCEDURE
walter 心得筆記-[SQL Server] 如何接收 Store Procedure 的傳回值
再延伸到編寫Stored Procedure時,遇到需要多個回傳值的處理方式!
--範例如下 CREATE PROCEDURE [dbo].[SP_TEST] (@xGPNo varchar(2),@xDTNo varchar(3),@xRGPNa Nvarchar(20) OUTPUT,@xRDTNa Nvarchar(50) OUTPUT)--設定傳入值格式 AS BEGIN DECLARE @xSQL Nvarchar(MAX)--存放動態語法 DECLARE @xGPNa Nvarchar(20)--接收回傳值 DECLARE @xDTNa Nvarchar(50)--接收回傳值 DECLARE @xStatemen nvarChar(MAX)--sp_executesql 參數 --參數設定順序需與語法一致 SET @xStatemen = '@xGPNa Nvarchar(20) OUT,@xDTNa Nvarchar(50) OUT,@xGPNo varchar(2),@xDTNo varchar(3)' --查詢語法 SET @xSQL = 'select @xGPNa=GPNa,@xDTNa=DTNa '+ ' from NOM '+ ' where GPNo='+Quotename(@xGPNo,'''')+ ' and DTNo='+Quotename(@xDTNo,'''') --語法、參數、回傳值及相關變數 EXEC sp_executesql @xSQL,@xStatemen,@xGPNa OUT,@xDTNa OUT,@xGPNo,@xDTNo SET @xRGPNa=@xGPNa SET @xRDTNa=@xDTNa END
--執行 DECLARE @xRGPNa Nvarchar(20) DECLARE @xRDTNa Nvarchar(50) EXEC dbo.SP_TEST 'SO','B01',@xRGPNa OUTPUT,@xRDTNa OUTPUT select @xRGPNa+'-'+@xRDTNa ----------------------------------------------------------------------- 成品出入庫類別-銷貨出庫 (1 個資料列受到影響)參考自:
MSDN-CREATE PROCEDURE
walter 心得筆記-[SQL Server] 如何接收 Store Procedure 的傳回值
MS SQL 資料處理時多個回傳值
在撰寫Stored Procedure時,若需要在一個查詢將多個資料欄位值存入各別的變數中,
可透過 sp_executesql 來達到需求
可透過 sp_executesql 來達到需求
--範例 DECLARE @xGPNo varchar(2)--查詢變數 DECLARE @xDTNo varchar(3)--查詢變數 DECLARE @xSQL Nvarchar(MAX)--存放動態語法 DECLARE @xGPNa Nvarchar(20)--接收回傳值 DECLARE @xDTNa Nvarchar(50)--接收回傳值 DECLARE @xStatemen nvarChar(MAX)--sp_executesql 參數 SET @xGPNo = 'SO'--指定值 SET @xDTNo = 'B01'--指定值 --參數設定順序需與語法一致 SET @xStatemen = '@xGPNa Nvarchar(20) OUT,@xDTNa Nvarchar(50) OUT,@xGPNo varchar(2),@xDTNo varchar(3)' --查詢語法 SET @xSQL = 'select @xGPNa=GPNa,@xDTNa=DTNa '+ ' from NOM '+ ' where GPNo='+Quotename(@xGPNo,'''')+ ' and DTNo='+Quotename(@xDTNo,'''') --語法、參數、回傳值及相關變數 EXEC sp_executesql @xSQL,@xStatemen,@xGPNa OUT,@xDTNa OUT,@xGPNo,@xDTNo --結果 select @xGPNa+'-'+@xDTNa ----------------------------------------------------------------------- 成品出入庫類別-銷貨出庫 (1 個資料列受到影響)參考自:TechNet-sp_executesql、MSDN-使用 sp_executesql
2012-01-17
MS SQL CURSOR 使用
當遇到在SQL中需逐筆處理抓取資料時,
可使用CURSOR來處理。
MSDN-CURSOR
MSDN-@@FETCH_STATUS
MSDN-DEALLOCATE
日月-[SQL] Cursor 使用方法
好風工作室-[T-SQL]在巢狀迴圈抓@@fetch_status會回傳-1的解決方法
可使用CURSOR來處理。
--範例如下 DECLARE Cursor_tmp CURSOR FOR --建立Cursor (select MixRubNo,MachNo,Ver,TMNo from #RubSpec_Tmp where GSeq='1') OPEN Cursor_tmp--開啟Cursor FETCH NEXT FROM Cursor_tmp INTO @xMixRubNo,@xMachNo,@xVer,@xTMNo--將值放入變數 WHILE @@FETCH_STATUS = 0--有回傳值 BEGIN UPDATE RubSpec SET isCal='1' where MixRubNo=@xMixRubNo and MachNo=@xMachNo and Ver=@xVer and TmNo=@xTMNo FETCH NEXT FROM Cursor_tmp INTO @xMixRubNo,@xMachNo,@xVer,@xTMNo--將值放入變數 END CLOSE Cursor_tmp--關閉Cursor DEALLOCATE Cursor_tmp--釋放Cursor參考自:
MSDN-CURSOR
MSDN-@@FETCH_STATUS
MSDN-DEALLOCATE
日月-[SQL] Cursor 使用方法
好風工作室-[T-SQL]在巢狀迴圈抓@@fetch_status會回傳-1的解決方法
MS SQL 判斷資料表是否存在
--方法一-透過INFORMATION_SCHEMA.TABLES select * from INFORMATION_SCHEMA.TABLES where TABLE_TYPE='BASE TABLE' and TABLE_NAME='RubSpec' --方法二-透過sys.tables select * from sys.tables where name='RubSpec' --方法三-使用OBJECT_ID select OBJECT_ID('RubSpec') ----若為暫存表格,因存放於tempdb,語法改寫為 select OBJECT_ID('tempdb..RubSpec') --如果表格存在要一併刪除,可使用下述語法 IF (select OBJECT_ID('RubSpec')) IS NOT NULL Drop Table RubSpec
訂閱:
文章 (Atom)