2011年8月29日 星期一

搜尋資料庫名稱,已製作VIEW


這樣便可以找到他的原始名稱

2011年8月22日 星期一

VBScript 寄送Email


strUser = "寄件者帳號"
strPasswd = "寄件者密碼"
strLogFile = "附件檔案路徑名稱"
strSMTP = "SMTP Server FQDN or IP"
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "寄信者信箱"
objEmail.To = "收信者信箱"
objEmail.Subject = "主旨:3DS檔案"
objEmail.Textbody = "信件內文"
objEmail.Addattachment strLogFile
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTP
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = strUser
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = strPasswd
objEmail.Configuration.Fields.Update
objEmail.Send
‘ 刪除已寄出的 Log File
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile(strLogFile)

以上轉至
http://122.147.149.155/ce4u/?p=361
以上轉至

2011年6月15日 星期三

[TSQL]無法解析 equal to 作業中 Latin1_General_CI_AI 與 Chinese_Taiwan_Stroke_CI_AS 之間的定序衝突

這是今天發生的小問題,情境是我習慣用自己的小工具做一下 txtBox 或 參數的產生,
所以常使用到這段TSQL 來查詢指定 Table 下,有哪一些欄位跟欄位的資訊
Select * From Information_Schema.Columns Where Table_Name = 'Company'
而這段指令查詢出來的資料如下圖:
image
大部分的資訊都能透過這段指令取得,而在SQL建立的時候,能夠將描述資訊也建立在欄位裡面,
image
但本來這段是查不出「描述欄位」,就突然想到之前 孤影 之前有寫到一篇 取得MS SQL中資料欄位的描述內容 ,
就趕緊東翻西翻,好在有把他收藏起來,一下就找到這篇,而要查出描述欄位則是使用這段指令
select * from fn_listextendedproperty(NULL, 'user', 'dbo', 'table', N'Company', 'column',NULL)

image
查出來的結果就如截圖顯示,我就想說兩個都是 Table 形式 (fn 這一各是傳回Table),
那我就把這兩段指令透過共有的欄位 ColumnName 來 INNER JOIN ,這樣我就能一次的查詢,
就獲得整個欄位的全部資料,所以我就下了這段


Select ISC.* ,F.value
From Information_Schema.Columns AS ISC
INNER JOIN fn_listextendedproperty(NULL, 'user', 'dbo', 'table', N'Company', 'column',NULL)
AS F
ON ISC.COLUMN_NAME = F.objname
Where ISC.Table_Name = 'Company'


結果出現的畫面不是我想像的成功畫面,而是這段的錯誤訊息
無法解析 equal to 作業中 "Latin1_General_CI_AI" 與 "Chinese_Taiwan_Stroke_CI_AS" 之間的定序衝突。
這讓我想到前段時間 .NET Factory 跟我討論,與其他國家不同系統,部分SQL指令整合的時候,當如果遇到定序問題,
該怎麼處理?兩方如果都無法改定序時或不需要改定序的整合方法,
馬上查SQL線上叢書如何透過修改指令的方式來動態修改目前比對的欄位(INNER JOIN),
使用 COLLATE 子句來將兩邊的定序調整成指定的定序,指令如下:


Select ISC.*   ,F.value
From Information_Schema.Columns AS ISC
INNER JOIN fn_listextendedproperty(NULL, 'user', 'dbo', 'table', N'Company', 'column',NULL)
AS F
ON ISC.COLUMN_NAME = F.objname COLLATE Chinese_Taiwan_Stroke_CI_AS
Where ISC.Table_Name = 'Company'



加上 COLLATE 子句就能看到成功顯示的畫面,就能透過這樣的方式,取得欄位資訊與摘要欄位。