<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>MSSQL資料庫</title><link>http://blog.blueshop.com.tw/topcat/category/528.aspx</link><description>MS SQL相關技術交流 </description><managingEditor>topcat</managingEditor><dc:language>zh-TW</dc:language><generator>.Text Version 0.95.2004.101</generator><item><dc:creator>topcat</dc:creator><title>使用GridView顯示Sql資料庫的Table Layout(Schema)</title><link>http://blog.blueshop.com.tw/topcat/archive/2008/05/28/55130.aspx</link><pubDate>Wed, 28 May 2008 14:19:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/topcat/archive/2008/05/28/55130.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/topcat/comments/55130.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/topcat/archive/2008/05/28/55130.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/topcat/comments/commentRss/55130.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/topcat/services/trackbacks/55130.aspx</trackback:ping><description>&lt;P&gt;小喵在開發系統過程中，經常會去查詢資料庫Table的Layout，一般來說會把他做成額外的文件，例如用Excel把Table的Layout打在上面，不過這個會有個問題，當資料庫Layout變動的時候，如果忘記去修改Excel文件中的Layout，那麼久而久之就會造成困擾(看到的文件與實際資料庫的不符合)&lt;/P&gt;
&lt;P&gt;因此小喵特別設計一個ASP.NET的畫面用來查詢資料庫各Table的Layout，基本上符合以下幾個需求&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;自動列出指定資料庫(DB)的所有Table 
&lt;LI&gt;可以設定Table的中文名稱，描述Table的用途 
&lt;LI&gt;點選Table名稱，可以列出該Table的Layout 
&lt;LI&gt;將Table各欄位的說明直接寫在資料表設計時的【描述】裡面 
&lt;LI&gt;可以對欄位的描述加上註解&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;以下先來看看執行的畫面：&lt;/P&gt;
&lt;P&gt;首先看列出資料庫中所有資料表的部分&lt;/P&gt;
&lt;P&gt;&lt;A href="http://files.dotblogs.com.tw/topcat/0805/GridViewSqlTableLayoutSchema_BE2B/layout01_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=334 alt=layout01 src="http://files.dotblogs.com.tw/topcat/0805/GridViewSqlTableLayoutSchema_BE2B/layout01_thumb.jpg" width=293 border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;接著看點選單一資料表名稱，顯示該資料表的Layout&lt;/P&gt;
&lt;P&gt;(在畫面上，會將主索引的欄位使用不同顏色顯示)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://files.dotblogs.com.tw/topcat/0805/GridViewSqlTableLayoutSchema_BE2B/layout02_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=277 alt=layout02 src="http://files.dotblogs.com.tw/topcat/0805/GridViewSqlTableLayoutSchema_BE2B/layout02_thumb.jpg" width=541 border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;在資料庫中，會使用【描述】這個欄位來存放【欄位中文名】與【備註】，使用;區隔&lt;/P&gt;
&lt;P&gt;&lt;A href="http://files.dotblogs.com.tw/topcat/0805/GridViewSqlTableLayoutSchema_BE2B/layout04_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=244 alt=layout04 src="http://files.dotblogs.com.tw/topcat/0805/GridViewSqlTableLayoutSchema_BE2B/layout04_thumb.jpg" width=216 border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;接著就來看看程式方面如何處理&lt;/P&gt;
&lt;P&gt;小喵先重點的描述一些關鍵的部分&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;如何取得某資料庫中所有的資料表 
&lt;LI&gt;如何取得某資料表的Schema 
&lt;LI&gt;描述的部分：在資料庫中存在於另外的地方--Extended Property&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;◎資料庫中所有資料表：透過內定的Stored Procedure sp_tables&lt;/P&gt;
&lt;P&gt;
&lt;DIV class=wlWriterSmartContent id=scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d7688f06-48ce-4454-8a1e-b05dfb49ebf1 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;TEXTAREA class=sql name=code rows=6 cols=50&gt;EXEC sp_tables  
	@table_name = '%', 
	@table_owner = 'dbo', 
	@table_qualifier = @DBName; &lt;/TEXTAREA&gt;&lt;/DIV&gt;&lt;/P&gt;
&lt;P&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;◎取得資料表Schema&lt;/DIV&gt;&lt;/P&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;TEXTAREA class=sql name=code rows=6 cols=50&gt;sp_columns @TableName&lt;/TEXTAREA&gt;&lt;/DIV&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;
&lt;P&gt;◎取得欄位說明、備註(Extended Property)：這個是透過Sql內定的Function來處理&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;TEXTAREA class=sql name=code rows=6 cols=50&gt;SELECT * 
FROM  ::fn_listextendedproperty(NULL, 'user', 'dbo', 'table', @TableName, 'column', default) &lt;/TEXTAREA&gt;&lt;/DIV&gt;
&lt;P&gt;透過以上這些關鍵的技術，就能夠達到&lt;/P&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;
&lt;HR&gt;
 
&lt;P&gt;最後小喵把相關的程式附上，特別說明一下，由於小喵是透過ObjectDataSouce去存取Complus的方式進行的，因此各位實際應用的時候，請您再擷取適當的部分程式碼。&lt;/P&gt;
&lt;P&gt;畫面的部分：&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;TEXTAREA class=xml name=code rows=6 cols=50&gt;    &amp;lt;asp:ScriptManager id="ScriptManager1" runat="server"&amp;gt;
    &amp;lt;/asp:ScriptManager&amp;gt;
    &amp;lt;asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
        DataSourceID="ObjectDataSource1" ForeColor="#333333" DataKeyNames="Tbl" BorderColor="Black" Font-Size="Small" PageSize="15"&amp;gt;
        &amp;lt;FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /&amp;gt;
        &amp;lt;Columns&amp;gt;
            &amp;lt;asp:CommandField ShowSelectButton="True" SelectText="Layout" ShowEditButton="True" HeaderText="控制" /&amp;gt;
            &amp;lt;asp:BoundField DataField="Tbl" HeaderText="資料表" ReadOnly="True" /&amp;gt;
            &amp;lt;asp:BoundField DataField="TblName" HeaderText="資料表名稱" /&amp;gt;
            &amp;lt;asp:BoundField DataField="MEMO" HeaderText="備註" /&amp;gt;
        &amp;lt;/Columns&amp;gt;
        &amp;lt;RowStyle BackColor="#EFF3FB" BorderColor="DimGray" BorderStyle="Solid" /&amp;gt;
        &amp;lt;EditRowStyle BackColor="#2461BF" /&amp;gt;
        &amp;lt;SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /&amp;gt;
        &amp;lt;PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /&amp;gt;
        &amp;lt;HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /&amp;gt;
        &amp;lt;AlternatingRowStyle BackColor="White" /&amp;gt;
    &amp;lt;/asp:GridView&amp;gt;
    

    &amp;lt;asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetTableList"
        TypeName="CCATTBLObj" UpdateMethod="ChgTblData"&amp;gt;
        &amp;lt;UpdateParameters&amp;gt;
            &amp;lt;asp:Parameter Name="Tbl" Type="String" /&amp;gt;
            &amp;lt;asp:Parameter Name="TblName" Type="String" /&amp;gt;
            &amp;lt;asp:Parameter Name="MEMO" Type="String" /&amp;gt;
            &amp;lt;asp:Parameter Name="User" Type="String" /&amp;gt;
        &amp;lt;/UpdateParameters&amp;gt;
    &amp;lt;/asp:ObjectDataSource&amp;gt;
    &amp;lt;div id="divLayout" runat="server" visible="false"&amp;gt;
        &amp;lt;asp:Button ID="btnSltTable" runat="server" Text="選取其他資料表" /&amp;gt;
        &amp;lt;table border="1" class="tbl1"&amp;gt;
            &amp;lt;tr class="dh"&amp;gt;
                &amp;lt;th&amp;gt;
                    資料表&amp;lt;/th&amp;gt;
                &amp;lt;th&amp;gt;
                    資料表名稱&amp;lt;/th&amp;gt;
                &amp;lt;th style="width: 78px"&amp;gt;
                    備註&amp;lt;/th&amp;gt;
            &amp;lt;/tr&amp;gt;
            &amp;lt;tr class="dl"&amp;gt;
                &amp;lt;td&amp;gt;
                    &amp;lt;asp:Label ID="lblTbl" runat="server" Text=""&amp;gt;&amp;lt;/asp:Label&amp;gt;
                &amp;lt;/td&amp;gt;
                &amp;lt;td&amp;gt;
                    &amp;lt;asp:Label ID="lblTblName" runat="server" Text=""&amp;gt;&amp;lt;/asp:Label&amp;gt;
                &amp;lt;/td&amp;gt;
                &amp;lt;td style="width: 78px"&amp;gt;
                    &amp;lt;asp:Label ID="lblMEMO" runat="server" Text=""&amp;gt;&amp;lt;/asp:Label&amp;gt;
                &amp;lt;/td&amp;gt;
            &amp;lt;/tr&amp;gt;
        &amp;lt;/table&amp;gt;
        &amp;lt;asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" BorderColor="Black"
            CellPadding="4" DataSourceID="ObjectDataSource2" Font-Size="Small" ForeColor="#333333"&amp;gt;
            &amp;lt;FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /&amp;gt;
            &amp;lt;Columns&amp;gt;
                &amp;lt;asp:BoundField DataField="SENC" HeaderText="順號" /&amp;gt;
                &amp;lt;asp:BoundField DataField="PK" HeaderText="主索引" /&amp;gt;
                &amp;lt;asp:BoundField DataField="Fld" HeaderText="欄位" /&amp;gt;
                &amp;lt;asp:BoundField DataField="FldName" HeaderText="欄位中文名" /&amp;gt;
                &amp;lt;asp:BoundField DataField="DataType" HeaderText="資料型態" /&amp;gt;
                &amp;lt;asp:BoundField DataField="DataSize" HeaderText="資料大小" /&amp;gt;
                &amp;lt;asp:BoundField DataField="DecimalSize" HeaderText="小數位數" /&amp;gt;
                &amp;lt;asp:BoundField DataField="NULLAble" HeaderText="是否允許NULL" /&amp;gt;
                &amp;lt;asp:BoundField DataField="DefaultValue" HeaderText="預設值" /&amp;gt;
                &amp;lt;asp:BoundField DataField="MEMO" HeaderText="備註" /&amp;gt;
            &amp;lt;/Columns&amp;gt;
            &amp;lt;RowStyle BackColor="#EFF3FB" /&amp;gt;
            &amp;lt;EditRowStyle BackColor="#2461BF" /&amp;gt;
            &amp;lt;SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /&amp;gt;
            &amp;lt;PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /&amp;gt;
            &amp;lt;HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /&amp;gt;
            &amp;lt;AlternatingRowStyle BackColor="White" /&amp;gt;
        &amp;lt;/asp:GridView&amp;gt;
        &amp;lt;asp:ObjectDataSource ID="ObjectDataSource2" runat="server" SelectMethod="GetTableLayout"
            TypeName="CCATTBLObj"&amp;gt;
            &amp;lt;SelectParameters&amp;gt;
                &amp;lt;asp:ControlParameter ControlID="GridView1" Name="TableName" PropertyName="SelectedValue"
                    Type="String" /&amp;gt;
            &amp;lt;/SelectParameters&amp;gt;
        &amp;lt;/asp:ObjectDataSource&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;asp:Label ID="lblErrMsg" runat="server" ForeColor="Red"&amp;gt;&amp;lt;/asp:Label&amp;gt;
&lt;/TEXTAREA&gt;&lt;/DIV&gt;
&lt;P&gt;CodeFile&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA class=vb name=code rows=6 cols=50&gt;    Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
        Dim Tbl As String = Me.GridView1.SelectedValue.ToString
        Me.lblTbl.Text = Tbl
        If Tbl &amp;lt;&amp;gt; "" Then

            Dim obj As Object = CreateObject("PCATTBL.CCATTBL1")
            Try
                Dim P As String = ""
                Dim R As String = ""
                Dim Ds As New DataSet
                Dim tmpTblName As String
                Dim tmpMEMO As String

                Dim rc As String = obj.SelectTBL(Tbl, Ds, P, R)

                If Ds.Tables(0).Rows.Count &amp;gt; 0 Then
                    Me.divLayout.Visible = True
                    Me.GridView1.Visible = False
                    tmpTblName = Ds.Tables(0).Rows(0).Item("TblName")
                    tmpMEMO = Ds.Tables(0).Rows(0).Item("MEMO")
                    'Me.lblTbl.Text = Tbl
                    Me.lblTblName.Text = tmpTblName
                    Me.lblMEMO.Text = tmpMEMO

                End If

            Catch ex As Exception
                Me.lblErrMsg.Text = ex.Message.ToString

            Finally
                obj.Dispose()
                obj = Nothing

            End Try
        End If

    End Sub

    Protected Sub GridView2_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView2.RowDataBound
        If e.Row.Cells(1).Text = "PK" Then
            e.Row.BackColor = Drawing.Color.Pink
        End If
    End Sub

    Protected Sub btnSltTable_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSltTable.Click
        Me.divLayout.Visible = False
        Me.GridView1.Visible = True
    End Sub

    Protected Sub Page_Load1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.lblErrMsg.Text = ""
    End Sub&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;Class的部分&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA class=vb name=code rows=6 cols=50&gt;Imports Microsoft.VisualBasic
Imports System.Data


Public Class CCATTBLObj

    Dim m_Tbl As String
    Dim m_TblName As String
    Dim m_MEMO As String
    Public Property Tbl() As String
        Get
            Return m_Tbl
        End Get
        Set(ByVal value As String)
            m_Tbl = value
        End Set
    End Property
    Public Property TblName() As String
        Get
            Return m_TblName
        End Get
        Set(ByVal value As String)
            m_TblName = value
        End Set
    End Property
    Public Property MEMO() As String
        Get
            Return m_MEMO
        End Get
        Set(ByVal value As String)
            m_MEMO = value
        End Set
    End Property

    Public Function GetTableLayout(ByVal TableName As String) As DataTable

        Dim Dt As DataTable
        Using obj As Object = CreateObject("PCATTBL.CCATTBL1")
            Dim P As String = ""
            Dim R As String = ""
            Try
                Dt = obj.GetTableLayout(TableName, P, R)

            Catch ex As Exception
                Throw

            Finally

            End Try
        End Using
        Return Dt
    End Function

    Public Function GetTableList() As DataTable
        Dim Dt As DataTable
        Using obj As Object = CreateObject("PCATTBL.CCATTBL1")
            Dim P As String = ""
            Dim R As String = ""
            Try
                Dt = obj.GetTblList("", P, R)

            Catch ex As Exception
                Throw

            Finally

            End Try
        End Using
        Return Dt
    End Function

    Public Function ChgTblData(ByVal Tbl As String, ByVal TblName As String, ByVal MEMO As String, ByVal User As String) As String
        Using obj As Object = CreateObject("PCATTBL.CCATTBL2")
            Dim P As String = ""
            Dim R As String = ""
            If MEMO Is Nothing Then
                MEMO = ""
            End If
            Try
                Dim rc = obj.ChgTbl(Tbl, TblName, MEMO, P, R, User)
                Return rc

            Catch ex As Exception
                Throw

            Finally

            End Try
        End Using
    End Function
End Class&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;最後是COM+中的Class，以這個範例，&lt;/P&gt;
&lt;P&gt;PCATTBL.CCATTBL1&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA class=vb name=code rows=6 cols=50&gt;Imports System.EnterpriseServices
Imports System.Runtime.InteropServices
Imports System.Data.SqlClient
Imports System.Data
Imports System.IO
&amp;lt;Guid("EF8D9AA8-11E5-46FD-B7F2-6FD0DB37168C"), _
EventTrackingEnabled(True)&amp;gt; _
Public Class CCATTBL1
    Inherits ServicedComponent
    Const DBName As String = "DCAT"
    Public Function GetConnStr(ByVal DBName As String) As String
        '*************************************************************************
        '**     撰寫者：小喵(topcat)     撰寫日期：20080507
        '**     用途：  1.讀取Connection String的方式
        '**     做法：
        '**             1.傳入參數DataBase Name DBName
        '**             2.透過Stream將文字檔讀出
        '**             3.將取得的資料傳回
        '**             4.關閉相關物件
        '**     注意事項：
        '**             1.
        '**             2.
        '**     維護記錄：
        '**         維護者：姓名(員工代號)     維護日期：日期
        '**         維護項目：
        '**                 1.
        '**                 2.
        '**         做法：  1.
        '**                 2.
        '**         注意事項：
        '**                 1.
        '*************************************************************************
        Dim StrmRd As New StreamReader("C:\DataLink\" + DBName + ".ini")
        Dim Line As String = ""
        Dim ConnStr As String = ""
        Try
            Do
                Line = StrmRd.ReadLine()
                If Line &amp;lt;&amp;gt; "" Then
                    ConnStr += Line
                End If
            Loop Until Line Is Nothing
            GetConnStr = ConnStr
        Catch ex As Exception
            Throw New Exception(ex.Message.ToString)
        Finally
            StrmRd.Close()
            StrmRd.Dispose()
            StrmRd = Nothing
        End Try
    End Function
    Public Function GetTblList(ByVal In1 As String, ByRef P As String, ByRef R As String) As DataTable
        '*************************************************************************
        '**     撰寫者：小喵(topcat)     撰寫日期：20080507
        '**     用途：  1.列出資料庫中所有資料表
        '**     做法：
        '**             1.列出本系統資料庫中所有資料表
        '**             2.比對TBL資料表，設定資料表名稱、備註
        '**             3.傳回DataTable
        '**             4.
        '**     注意事項：
        '**             1.
        '**             2.
        '**     維護記錄：
        '**         維護者：姓名(員工代號)     維護日期：日期
        '**         維護項目：
        '**                 1.
        '**                 2.
        '**         做法：  1.
        '**                 2.
        '**         注意事項：
        '**                 1.
        '*************************************************************************
        Dim ConnStr As String = GetConnStr(DBName)
        Dim Dt1 As New DataTable
        Dt1.Columns.Add("Tbl", Type.GetType("System.String"))
        Dt1.Columns.Add("TblName", Type.GetType("System.String"))
        Dt1.Columns.Add("MEMO", Type.GetType("System.String"))
        Using Conn As New SqlConnection(ConnStr)
            Conn.Open()
            Dim SqlTxt As String = ""
            Dim Cmmd As SqlCommand
            Dim Dr As SqlDataReader
            '**             1.列出本系統資料庫中所有資料表
            SqlTxt += " EXEC sp_tables  "
            SqlTxt += "    @table_name = '%', "
            SqlTxt += "    @table_owner = 'dbo', "
            SqlTxt += "    @table_qualifier = @DBName; "
            SqlTxt += "  "
            Cmmd = New SqlCommand(SqlTxt, Conn)
            Cmmd.Parameters.AddWithValue("@DBName", DBName)
            Dr = Cmmd.ExecuteReader
            Dim tmpTblName As String = ""
            Dim tmpRw As DataRow
            If Dr.HasRows Then
                While Dr.Read
                    tmpTblName = Dr.Item("TABLE_NAME")
                    tmpRw = Dt1.NewRow
                    tmpRw.Item("Tbl") = tmpTblName
                    Dt1.Rows.Add(tmpRw)
                End While
            End If
            Dr.Close()
            '**             2.比對TBL資料表，設定資料表名稱、備註
            SqlTxt = ""
            SqlTxt += " SELECT * "
            SqlTxt += " FROM TCATTBL WITH (NOLOCK) "
            SqlTxt += "  "
            Cmmd = New SqlCommand(SqlTxt, Conn)
            Dr = Cmmd.ExecuteReader
            Dim rws() As DataRow
            If Dr.HasRows Then
                While Dr.Read
                    tmpTblName = Dr.Item("Tbl")
                    rws = Dt1.Select("Tbl = '" + tmpTblName + "'")
                    rws(0).Item("TblName") = Dr.Item("TblName")
                    rws(0).Item("MEMO") = Dr.Item("MEMO")
                End While
            End If
            Dr.Close()
            '**             3.傳回DataTable
            Conn.Close()
        End Using
        Return Dt1
    End Function
    Public Function GetTableLayout(ByVal TableName As String, ByRef P As String, ByRef R As String) As DataTable
        '*************************************************************************
        '**     撰寫者：小喵(topcat)     撰寫日期：20080507
        '**     用途：  1.列出指定資料表的Layout
        '**     做法：
        '**             1.
        '**             2.
        '**             3.
        '**             4.
        '**     注意事項：
        '**             1.
        '**             2.
        '**     維護記錄：
        '**         維護者：姓名(員工代號)     維護日期：日期
        '**         維護項目：
        '**                 1.
        '**                 2.
        '**         做法：  1.
        '**                 2.
        '**         注意事項：
        '**                 1.
        '*************************************************************************
        '建立回傳的DataTable
        Dim Dt As New DataTable
        Dim y As Integer = 0
        '設定Dt欄位
        Dt.Columns.Add("SENC", Type.GetType("System.Decimal"))
        Dt.Columns.Add("PK", Type.GetType("System.String"))
        Dt.Columns.Add("Fld", Type.GetType("System.String"))
        Dt.Columns.Add("FldName", Type.GetType("System.String"))
        Dt.Columns.Add("DataType", Type.GetType("System.String"))
        Dt.Columns.Add("DataSize", Type.GetType("System.String"))
        Dt.Columns.Add("DecimalSize", Type.GetType("System.String"))
        Dt.Columns.Add("NULLAble", Type.GetType("System.String"))
        Dt.Columns.Add("DefaultValue", Type.GetType("System.String"))
        Dt.Columns.Add("MEMO", Type.GetType("System.String"))
        Dim ConnStr As String = GetConnStr(DBName)
        Dim Cmmd As SqlCommand
        Dim Dt2 As DataTable
        Dim Da As SqlDataAdapter
        Dim rw As DataRow
        Using Conn As New SqlConnection(ConnStr)
            'Conn.Open()
            '****處理欄位Layout資料
            Dim SqlTxt1 As String = ""
            SqlTxt1 += " sp_columns '" + TableName + "' "
            SqlTxt1 += "  "
            Cmmd = New SqlCommand(SqlTxt1, Conn)
            'Cmmd.Parameters.AddWithValue("@TableName", TableName)
            Da = New SqlDataAdapter(Cmmd)
            Dt2 = New DataTable
            Da.Fill(Dt2)
            If Dt2.Rows.Count &amp;gt; 0 Then
                For y = 0 To Dt2.Rows.Count - 1
                    rw = Dt.NewRow
                    rw.Item("SENC") = CInt(Dt2.Rows(y).Item("ORDINAL_POSITION"))
                    rw.Item("Fld") = Dt2.Rows(y).Item("COLUMN_NAME")
                    rw.Item("DataType") = Dt2.Rows(y).Item("TYPE_NAME")
                    rw.Item("DataSize") = Dt2.Rows(y).Item("PRECISION")
                    If IsDBNull(Dt2.Rows(y).Item("SCALE")) Then
                        rw.Item("DecimalSize") = ""
                    Else
                        rw.Item("DecimalSize") = Dt2.Rows(y).Item("SCALE")
                    End If
                    rw.Item("NULLAble") = Dt2.Rows(y).Item("NULLABLE")
                    rw.Item("DefaultValue") = Dt2.Rows(y).Item("COLUMN_DEF")
                    'rw.Item("MEMO") = Dt2.Rows(y).Item("")
                    Dt.Rows.Add(rw)
                Next
            End If
            '***處理欄位說明
            SqlTxt1 = ""
            SqlTxt1 += " SELECT * "
            SqlTxt1 += " FROM  ::fn_listextendedproperty(NULL, 'user', 'dbo', 'table', @TableName, 'column', default) "
            SqlTxt1 += "  "
            Cmmd = New SqlCommand(SqlTxt1, Conn)
            Cmmd.Parameters.AddWithValue("@TableName", TableName)
            Da = New SqlDataAdapter(Cmmd)
            Dt2 = New DataTable
            Da.Fill(Dt2)
            Dim tmpFld As String
            Dim tmpExt() As String
            Dim CurrentRw() As DataRow
            If Dt2.Rows.Count &amp;gt; 0 Then
                For y = 0 To Dt2.Rows.Count - 1
                    tmpFld = Dt2.Rows(y).Item("objname")
                    tmpExt = Split(Dt2.Rows(y).Item("value"), ";")
                    CurrentRw = Dt.Select("Fld = '" + tmpFld + "'")
                    CurrentRw(0).Item("FldName") = tmpExt(0)
                    If UBound(tmpExt) &amp;gt; 0 Then
                        CurrentRw(0).Item("MEMO") = tmpExt(1)
                    End If
                Next
            End If
            '取得Primery Key設定
            SqlTxt1 = ""
            SqlTxt1 += " sp_pkeys '" + TableName + "' "
            SqlTxt1 += "  "
            Cmmd = New SqlCommand(SqlTxt1, Conn)
            Da = New SqlDataAdapter(Cmmd)
            Dt2 = New DataTable
            Da.Fill(Dt2)
            If Dt2.Rows.Count &amp;gt; 0 Then
                For y = 0 To Dt2.Rows.Count - 1
                    tmpFld = Dt2.Rows(y).Item("COLUMN_NAME")
                    CurrentRw = Dt.Select("Fld = '" + tmpFld + "'")
                    CurrentRw(0).Item("PK") = "PK"
                Next
            End If
            Conn.Close()
        End Using
        Return Dt
    End Function
End Class&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;另外一個是維護Table名稱與說明的PCATTBL.CCATTBL2&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA class=vb name=code rows=6 cols=50&gt;Imports System.EnterpriseServices
Imports System.Runtime.InteropServices
Imports System.Data.SqlClient
Imports System.Data
Imports System.IO
&amp;lt;Guid("4F0698AD-7060-44A2-B4E7-21440F48E4F6") _
, Transaction(TransactionOption.Required) _
, Synchronization(SynchronizationOption.Required) _
, JustInTimeActivation(True) _
, EventTrackingEnabled(True)&amp;gt; _
Public Class CCATTBL2
    Inherits ServicedComponent
    Const DBName As String = "DCAT"
    &amp;lt;AutoComplete()&amp;gt; _
    Public Function GetConnStr(ByVal DBName As String) As String
        '*************************************************************************
        '**     撰寫者：小喵(topcat)     撰寫日期：20080507
        '**     用途：  1.讀取Connection String的方式
        '**     做法：
        '**             1.傳入參數DataBase Name DBName
        '**             2.透過Stream將文字檔讀出
        '**             3.將取得的資料傳回
        '**             4.關閉相關物件
        '**     注意事項：
        '**             1.
        '**             2.
        '**     維護記錄：
        '**         維護者：姓名(員工代號)     維護日期：日期
        '**         維護項目：
        '**                 1.
        '**                 2.
        '**         做法：  1.
        '**                 2.
        '**         注意事項：
        '**                 1.
        '*************************************************************************
        Dim StrmRd As New StreamReader("C:\DataLink\" + DBName + ".ini")
        Dim Line As String = ""
        Dim ConnStr As String = ""
        Try
            Do
                Line = StrmRd.ReadLine()
                If Line &amp;lt;&amp;gt; "" Then
                    ConnStr += Line
                End If
            Loop Until Line Is Nothing
            GetConnStr = ConnStr
        Catch ex As Exception
            Throw New Exception(ex.Message.ToString)
        Finally
            StrmRd.Close()
            StrmRd.Dispose()
            StrmRd = Nothing
        End Try
    End Function
    &amp;lt;AutoComplete()&amp;gt; _
    Public Function ChgTbl(ByVal Tbl As String, ByVal TblName As String, ByVal MEMO As String, ByRef P As String, ByRef R As String, ByVal User As String) As String
        '*************************************************************************
        '**     撰寫者：小喵(topcat)     撰寫日期：20080507
        '**     用途：  1.維護Table設定
        '**     做法：
        '**             1.取得傳入的參數
        '**             2.判斷是否有該筆設定
        '**                 2a.有→設定更新SQL
        '**                 2b.沒有→設定新增SQL
        '**             3.執行更新
        '**             4.回報結果
        '**             5.
        '**     注意事項：
        '**             1.
        '**             2.
        '**     維護記錄：
        '**         維護者：姓名(員工代號)     維護日期：日期
        '**         維護項目：
        '**                 1.
        '**                 2.
        '**         做法：  1.
        '**                 2.
        '**         注意事項：
        '**                 1.
        '*************************************************************************
        Dim ConnStr As String = GetConnStr(DBName)
        Using Conn As New SqlConnection(ConnStr)
            Dim Cmmd As SqlCommand
            Dim SqlTxt As String = ""
            Dim SqlTxt2 As String = ""
            Try
                '**             1.取得傳入的參數
                '**             2.判斷是否有該筆設定
                '**                 2a.有→設定更新SQL
                '**                 2b.沒有→設定新增SQL
                '**             3.執行更新
                '**             4.回報結果
                Conn.Open()
                SqlTxt = ""
                SqlTxt += " SELECT * "
                SqlTxt += " FROM TCATTBL WITH (NOLOCK) "
                SqlTxt += " WHERE (Tbl = @Tbl) "
                SqlTxt += "  "
                Cmmd = New SqlCommand(SqlTxt, Conn)
                Cmmd.Parameters.AddWithValue("@Tbl", Tbl)
                Dim Dr As SqlDataReader
                Dr = Cmmd.ExecuteReader
                SqlTxt2 = ""
                If Dr.HasRows Then
                    SqlTxt2 += " UPDATE TCATTBL "
                    SqlTxt2 += " SET    TblName = @TblName, "
                    SqlTxt2 += "        MEMO = @MEMO "
                    SqlTxt2 += " WHERE (Tbl = @Tbl) "
                    SqlTxt2 += "  "
                Else
                    SqlTxt2 += " INSERT INTO TCATTBL "
                    SqlTxt2 += " (Tbl,TblName,MEMO) "
                    SqlTxt2 += " VALUES (@Tbl,@TblName,@MEMO) "
                    SqlTxt2 += "  "
                End If
                Dr.Close()
                Cmmd = New SqlCommand(SqlTxt2, Conn)
                Cmmd.Parameters.AddWithValue("@Tbl", Tbl)
                Cmmd.Parameters.AddWithValue("@TblName", TblName)
                Cmmd.Parameters.AddWithValue("@MEMO", MEMO)
                Cmmd.ExecuteNonQuery()
                Conn.Close()
                ChgTbl = "Success"
            Catch ex As Exception
                ChgTbl = "False"
                Throw New Exception(ex.Message)
            Finally
                Conn.Dispose()
            End Try
        End Using
    End Function
End Class&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;以上方式，提供大家參考&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/P&gt;
&lt;P&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/P&gt;
&lt;P&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/P&gt;
&lt;P&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/P&gt;
&lt;P&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/P&gt;
&lt;P&gt;
&lt;DIV class=wlWriterSmartContent style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/P&gt;&lt;img src ="http://blog.blueshop.com.tw/topcat/aggbug/55130.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>topcat</dc:creator><title>跨網站單一登入(Single Sign On)的作法概念</title><link>http://blog.blueshop.com.tw/topcat/archive/2008/04/03/54681.aspx</link><pubDate>Thu, 03 Apr 2008 08:13:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/topcat/archive/2008/04/03/54681.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/topcat/comments/54681.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/topcat/archive/2008/04/03/54681.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/topcat/comments/commentRss/54681.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/topcat/services/trackbacks/54681.aspx</trackback:ping><description>&lt;p&gt;當我們開發了許多的Web應用系統後，如果使用者同時擁有多個Web應用程式的使用權限，而每個Web應用程式都有自己的登入帳號密碼，那麼對於使用者來說，有點麻煩，尤其是剛好設定的密碼又不同。&lt;/p&gt;&lt;p&gt;為了方便使用者的使用，因此會有【單一登入】的需求出現，只要登入一個應用程式後，要跳到別的Web應用程式，不需要再次輸入帳號密碼，可以直接就進行登入。但是為了考量安全性，還是要考量一下怎麼設計才能夠兼顧安全與便利。&lt;/p&gt;&lt;p&gt;小喵的方式是透過SQL來當作媒介，假設小喵要從WebA跳到WebB。 &lt;br /&gt;首先要準備一個兩個應用程式都能夠存取的資料庫。然後設計一個資料表來處理。這個資料表有以下幾個欄位&lt;/p&gt;&lt;ol&gt;&lt;li&gt;GUID:由NewId()產生出來類似【504B1790-E93A-4445-B262-E73A113BF336】這樣格式的資料&lt;/li&gt;&lt;li&gt;UserId:WebB的帳號，當然WebA與WebB可以用相通的帳號，或者是透過員工代號取得WebB的帳號&lt;/li&gt;&lt;li&gt;TimeOut:過期時間，產生該筆資料的時間+2分種。也就是從WebA到WebB的過程，小喵估計不會超過2分鐘，時間過期後該筆資料就沒用了。&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;接著就是運作的方式&lt;/p&gt;&lt;p&gt;步驟如下&lt;/p&gt;&lt;ol&gt;&lt;li&gt;WebA點選轉入WebB&lt;/li&gt;&lt;li&gt;寫入1筆過程資料，例如：5ED095B8-350D-42C3-953B-9C53DED54AFD,topcat,20080402165823&lt;/li&gt;&lt;li&gt;WebA Submit GUID給 WebB&lt;/li&gt;&lt;li&gt;WebB承接到GUID取回資料，並判斷現在時間沒有大於20080402165823&lt;/li&gt;&lt;li&gt;如果4.找不到，顯示錯誤並拒絕登入&lt;/li&gt;&lt;li&gt;如果4找到，進行登入程序&lt;/li&gt;&lt;li&gt;刪除該GUID資料&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;這過程中的時間，過期時間拉得越長越不安全。太短又容易失敗，所以大家自己斟酌。&lt;/p&gt;&lt;p&gt;由於GUID發生碰撞的機會很低，並且在加上過期時間的保護，小喵覺得應該還算安全，大家覺得怎麼樣再請大家給小喵一些建議&lt;/p&gt;&lt;p&gt;^_^&lt;/p&gt;&lt;img src ="http://blog.blueshop.com.tw/topcat/aggbug/54681.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>topcat</dc:creator><title>(SQL)抽獎，亂數抽出10筆中獎資料並排名</title><link>http://blog.blueshop.com.tw/topcat/archive/2008/03/28/54623.aspx</link><pubDate>Fri, 28 Mar 2008 16:59:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/topcat/archive/2008/03/28/54623.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/topcat/comments/54623.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/topcat/archive/2008/03/28/54623.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/topcat/comments/commentRss/54623.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/topcat/services/trackbacks/54623.aspx</trackback:ping><description>&lt;p&gt;剛好網路上有網友詢問到抽獎的問題，小喵將小喵的方式記錄在此&lt;/p&gt;

&lt;p&gt;需求是這樣的，有個資料表記錄著消費者購買的資料，要從這些資料中，抽出幸運的10個，分別依序是頭獎1、二獎2、三獎3、四獎4總共10個人，因此我需要從資料庫中亂數的撈出10筆購買資料，並且給予1~10的編號依序獲得獎項&lt;/P&gt;

&lt;p&gt;其實這樣的需求只需透過SQL的語法讀區資料即可，假設我存放購買資料的Table名稱是TCustBuy那麼我所需要下的SQL與法如下：&lt;/p&gt;

SELECT  TOP 10 IDENTITY(int,1,1) as NID, *&lt;br/&gt;
INTO #TTT&lt;br/&gt;
FROM TCustBuy&lt;br/&gt;
ORDER BY NewId()&lt;br/&gt;
&lt;br/&gt;
SELECT *&lt;br/&gt;
FROM #TTT&lt;br/&gt;
&lt;p&gt;說明：&lt;br&gt;&lt;li&gt;NewId()：是會產生類似GUID不會重複的並且每次產生都不同的資料，因此Order By NewId()就能夠產生亂數排序的功能&lt;/li&gt;&lt;li&gt;TOP 10：的話就是取出其中的前10筆資料，由於資料已經亂數排序了，所以這樣就能夠每次執行都取出不同的10筆資料&lt;/li&gt;&lt;li&gt;IDENTITY(int,1,1)：是產生不重複並依序的數字，但是他必須配合SELECT....INTO的方式使用，因此配合這個特性使用暫存Table的方式就能夠編出1~10的編號&lt;/li&gt;&lt;/p&gt;

&lt;p&gt;最後使用完Temp Table要記得把Temp Table Drop掉&lt;/p&gt;

&lt;p&gt;DROP Table #TT執行結果如下圖：多執行幾次，每次結果都不同&lt;/p&gt;

&lt;img src="http://files.dotblogs.com.tw/topcat/0803/SQL10_E7D1/SQLAward10_thumb.jpg" /&gt;&lt;img src ="http://blog.blueshop.com.tw/topcat/aggbug/54623.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>topcat</dc:creator><title>VB.NET中執行SSIS產生的DTSX</title><link>http://blog.blueshop.com.tw/topcat/archive/2008/03/11/54485.aspx</link><pubDate>Tue, 11 Mar 2008 14:08:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/topcat/archive/2008/03/11/54485.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/topcat/comments/54485.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/topcat/archive/2008/03/11/54485.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/topcat/comments/commentRss/54485.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/topcat/services/trackbacks/54485.aspx</trackback:ping><description>&lt;p&gt;當需要匯入匯出大量的資料時，尤其是異質的資料(例如把Access的mdb資料匯入到MS-SQL)，使用SSIS的方式速度是最快的，而且可以在SQL Server Management Studio裡面，直接在操作匯入匯出的時候，把過程儲存成SSIS的格式(.DTSX)。下次有相同的匯入匯出動作，就可以直接透過儲存的dstx來使用。&lt;/p&gt;

&lt;p&gt;如果想在程式中執行DTSX，可以透過以下的方式處理&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;在專案中，要加入參考【Microsoft.SQLServer.ManagedDTS】 &lt;/li&gt;

  &lt;li&gt;Imports Microsoft.SqlServer.Dts.Runtime &lt;/li&gt;

  &lt;li&gt;相關程式碼如下： 
    &lt;pre class="csharpcode" style="overflow: scroll; width: 540px; height: 200px"&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; pkg &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;&amp;quot;D:\DTSX\MyImport.dtsx&amp;quot;&lt;/span&gt;    &lt;span class="rem"&gt;'DTSX檔案路徑&lt;/span&gt;
&lt;span class="kwrd"&gt;Dim&lt;/span&gt; app &lt;span class="kwrd"&gt;As&lt;/span&gt; Application = &lt;span class="kwrd"&gt;New&lt;/span&gt; Application()
&lt;span class="kwrd"&gt;Dim&lt;/span&gt; p &lt;span class="kwrd"&gt;As&lt;/span&gt; Package = app.LoadPackage(pkg, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;)

&lt;span class="kwrd"&gt;Dim&lt;/span&gt; vir &lt;span class="kwrd"&gt;As&lt;/span&gt; Variables = p.Variables

&lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Not&lt;/span&gt; p.Execute(&lt;span class="kwrd"&gt;Nothing&lt;/span&gt;, vir, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;, &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;) = DTSExecResult.Success &lt;span class="kwrd"&gt;Then&lt;/span&gt;
   &lt;span class="kwrd"&gt;Throw&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; Exception(&lt;span class="str"&gt;&amp;quot;NICE.mdb檔案匯入SQL失敗!!&amp;quot;&lt;/span&gt;)
&lt;span class="kwrd"&gt;Else&lt;/span&gt;
    &lt;span class="kwrd"&gt;Return&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;Success&amp;quot;&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;
    &lt;style type="text/css"&gt;






.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;可以在程式中執行，那麼無論是透過畫面的按鈕，還是排程都可以處理這樣的動作了!!&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;另外要注意的是，如果是使用Web Service或者是ASP.NET的話，可能要注意一下權限的問題&lt;/p&gt;
&lt;img src ="http://blog.blueshop.com.tw/topcat/aggbug/54485.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>topcat</dc:creator><title>北風資料庫(NorthWind DataBase)下載</title><link>http://blog.blueshop.com.tw/topcat/archive/2008/03/10/54477.aspx</link><pubDate>Mon, 10 Mar 2008 22:38:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/topcat/archive/2008/03/10/54477.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/topcat/comments/54477.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/topcat/archive/2008/03/10/54477.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/topcat/comments/commentRss/54477.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/topcat/services/trackbacks/54477.aspx</trackback:ping><description>&lt;p&gt;使用SQL 2005以後，範例的資料庫已經不再是北風了&lt;/p&gt;

&lt;p&gt;不過有些人還是習慣用北風資料庫來當作範例&lt;/p&gt;

&lt;p&gt;有需要的人可以透過以下這個網址下載SQL2000的範例資料庫Northwind與Pubs &lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034&amp;amp;displaylang=en" target="_blank"&gt;Northwind and pubs Sample Databases for SQL Server 2000&lt;/a&gt;&lt;/p&gt;
&lt;img src ="http://blog.blueshop.com.tw/topcat/aggbug/54477.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>topcat</dc:creator><title>如何在SQL中產生交叉式資料表(樞紐分析表)Part 2(PIVOT,UNPIVOT)</title><link>http://blog.blueshop.com.tw/topcat/archive/2008/01/25/54167.aspx</link><pubDate>Fri, 25 Jan 2008 13:32:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/topcat/archive/2008/01/25/54167.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/topcat/comments/54167.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/topcat/archive/2008/01/25/54167.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/topcat/comments/commentRss/54167.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/topcat/services/trackbacks/54167.aspx</trackback:ping><description>&lt;P&gt;之前小喵使用SQL2000的時候，為了產生交叉資料表(Excel中稱為樞紐分析表)，小喵用了以下這篇的方式來處理&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blog.blueshop.com.tw/topcat/archive/2005/08/09/11379.aspx"&gt;http://blog.blueshop.com.tw/topcat/archive/2005/08/09/11379.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;這樣的方式在SQL 2005裡面一樣可以用，不過2005又新增了一個更方便的東西，可以更簡潔的來處理。這個東西就是【PIVOT】，神奇的是，除了可以透過PIVOT產生交叉資料表，還可以透過UNPIVOT將交叉資料表轉回原來的方式(這對於有些資料表的正規化很有幫助唷)。&lt;/P&gt;
&lt;P&gt;^_^&lt;/P&gt;
&lt;P&gt;相關的說明SQL2005的Online Book已經說得很清楚了，小喵就直接鏈結TechNet的文章，請大家參考&lt;/P&gt;
&lt;P&gt;&lt;A href="http://technet.microsoft.com/zh-tw/library/ms177410.aspx"&gt;http://technet.microsoft.com/zh-tw/library/ms177410.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://blog.blueshop.com.tw/topcat/aggbug/54167.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>topcat</dc:creator><title>SQL語法：取得年月日時分秒yyyyMMddHHmmss的語法</title><link>http://blog.blueshop.com.tw/topcat/archive/2007/12/21/53797.aspx</link><pubDate>Fri, 21 Dec 2007 15:04:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/topcat/archive/2007/12/21/53797.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/topcat/comments/53797.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/topcat/archive/2007/12/21/53797.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/topcat/comments/commentRss/53797.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/topcat/services/trackbacks/53797.aspx</trackback:ping><description>SELECT CONVERT(char(8),GetDate(),112) + REPLACE(CONVERT(char(14),GetDate(),108),':','') as 'NowTime' &lt;img src ="http://blog.blueshop.com.tw/topcat/aggbug/53797.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>topcat</dc:creator><title>從小喵學習的經驗聊聊學習ASP.NET的建議</title><link>http://blog.blueshop.com.tw/topcat/archive/2007/12/06/53569.aspx</link><pubDate>Thu, 06 Dec 2007 11:08:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/topcat/archive/2007/12/06/53569.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/topcat/comments/53569.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/topcat/archive/2007/12/06/53569.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/topcat/comments/commentRss/53569.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/topcat/services/trackbacks/53569.aspx</trackback:ping><description>&lt;P&gt;要走程式設計這條路，確實需要熱情...而且是持續不斷的熱情&lt;/P&gt;
&lt;P&gt;小喵聊聊小喵學習的經過&lt;/P&gt;
&lt;P&gt;小喵雖然是資訊工程畢業&lt;BR&gt;不過在學校的時候沒有認真學寫程式&lt;BR&gt;(那時候小喵的興趣在網管)&lt;BR&gt;小喵是等作業版本的那群之一&lt;/P&gt;
&lt;P&gt;不過在這個過程至少也建立了程式撰寫的基本概念&lt;BR&gt;(變數定義、函數運用、資料型態、判斷式與程式流程、迴圈、遞迴等...)&lt;BR&gt;這個部分您可以看您想學哪個程式語言(例如：C#,VB.NET)，買本那個語言介紹的書看看&lt;/P&gt;
&lt;P&gt;後來工作後才真正接觸到程式撰寫&lt;BR&gt;剛開始接觸的是ASP&lt;BR&gt;完全沒有HTML,JavaScript的基礎&lt;BR&gt;由於當時公司剛導入WebApp的方式&lt;BR&gt;公司有請老師來上課&lt;BR&gt;同事們的程度也都差不多&lt;BR&gt;記得當時老師說過一句話&lt;BR&gt;【&lt;BR&gt;學ASP沒有精通HTML,JavaScript(備註1)沒關係&lt;BR&gt;學習過程中多去檢視原始檔，再慢慢了解用到的HTML與JavaScript就好了&lt;BR&gt;】&lt;BR&gt;會這麼說小喵覺得是有原因的&lt;BR&gt;小喵曾經去翻過專門介紹HTML Tag的書&lt;BR&gt;裡面的東西有很多到目前為止還沒用過&lt;BR&gt;因此小喵的建議是，HTML,CSS,JavaScript各找一本當作參考字典就好&lt;BR&gt;有用到的時候來查看怎麼用&lt;/P&gt;
&lt;P&gt;直到2005年底VS2005出來的時候，小喵才慢慢把焦點轉到ASP.NET上&lt;/P&gt;
&lt;P&gt;備註1:&lt;BR&gt;精通HTML,JavaScript&lt;BR&gt;精通HTML是指所有的HTML的Tag用法都熟悉，還包括CSS的用法&lt;BR&gt;精通JavaScript則是不但要精通JavaScript的語法(其實與C還蠻類似的)&lt;BR&gt;還得對HTML內的各種物件屬性方法熟悉才稱得上精通&lt;BR&gt;----------------&lt;/P&gt;
&lt;P&gt;對於學習的建議，小喵的想法如下，提供參考&lt;/P&gt;
&lt;P&gt;1.程式語言的學習&lt;BR&gt;如果自己有熟悉的語言，熟C,Java,C++,Delphi的建議學C#，熟VB的學VB.NET&lt;BR&gt;如果都沒有學過程式語言，那麼建議學C#&lt;BR&gt;C#,JavaScript它們的基本語法都是從C衍生出來的&lt;BR&gt;因此您學基本語法的時候，可以一並用在JavaScript裡面&lt;BR&gt;(雖然小喵自己用的是VB.NET)&lt;BR&gt;這個部份找本書來看&lt;BR&gt;&lt;BR&gt;2.HTML部分&lt;BR&gt;建議先看過FORM裡面的物件&lt;BR&gt;&amp;lt;INPUT type=Text&amp;gt;&lt;BR&gt;&amp;lt;INPUT Type=button&amp;gt;&lt;BR&gt;&amp;lt;INPUT type=password&amp;gt;&lt;BR&gt;&amp;lt;INPUT type=submit&amp;gt;&lt;BR&gt;&amp;lt;INPUT type=reset&amp;gt;&lt;BR&gt;&amp;lt;SELECT&amp;gt;&lt;BR&gt;&amp;lt;TEXTArea&amp;gt;&amp;lt;/TEXTArea&amp;gt;&lt;BR&gt;以及會用來排畫面的&lt;BR&gt;&amp;lt;Table&amp;gt;&amp;lt;/table&amp;gt;&lt;BR&gt;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;BR&gt;&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;&lt;BR&gt;市面上有很多視覺化編輯HTML的工具(Dreamwave,FrontPage,Expression Web等)&lt;BR&gt;建議可以視覺化編輯後他所產生的HTML大致上了解一下&lt;/P&gt;
&lt;P&gt;這些部分看過定義，先有個基本印象&lt;/P&gt;
&lt;P&gt;3.JavaScript的學習&lt;BR&gt;小喵覺得這部份的重點&lt;BR&gt;在於如何透過JavaScript去控制到畫面的各個物件(尤其是Form裡面的物件)&lt;BR&gt;並且清楚這些物件樹&lt;BR&gt;例如&lt;BR&gt;&lt;TEXTAREA class=xml style="WIDTH: 678px; HEIGHT: 100px" name=code rows=6 cols=80&gt;&amp;lt;HTML&amp;gt;
&amp;lt;BODY&amp;gt;
&amp;lt;FORM action="" id="form1" name="form1" method="post"&amp;gt;
 &amp;lt;INPUT type="text" id="text1" name="text1" value="abc"&amp;gt;
&amp;lt;/FORM&amp;gt;
&amp;lt;/BODY&amp;gt;
&amp;lt;/HTML&amp;gt;
&lt;/TEXTAREA&gt;&lt;BR&gt;那麼您要透過JavaScript取得text1裡面的資料&lt;BR&gt;就要知道這個HTML的架構&lt;BR&gt;IE--&amp;gt;window&lt;BR&gt;裡面有個BODY--&amp;gt;document&lt;BR&gt;裡面有個Form--&amp;gt;form1&lt;BR&gt;裡面有個Input--&amp;gt;text1&lt;BR&gt;所以在JavaScript裡面取得物件的方式是&lt;BR&gt;&lt;TEXTAREA class=jscript style="WIDTH: 654px; HEIGHT: 50px" name=code rows=3 cols=77&gt;var t=window.document.form1.text1.value;&lt;/TEXTAREA&gt;&lt;BR&gt;4.ASP.NET&lt;BR&gt;找本ASP.NET的書來學習&lt;BR&gt;建議學習程式碼與畫面分開的方式(CodeBeside)&lt;BR&gt;也就是一個abc.aspx的畫面會搭配一個abc.aspx.cs&lt;/P&gt;
&lt;P&gt;5.SQL學習&lt;BR&gt;a.學會視覺化的操作(建立資料表、檢視(View)裡面拉資料表、設定關聯、勾選要的欄位、設定條件)&lt;BR&gt;b.學習T-SQL:從視覺化操作產生的SQL語法..學習T-SQL(SELECT,INSERT,UPDATE, DELETE,INNER JOIN, LEFT JOIN, RIGHT JOIN)&lt;BR&gt;c.學習資料庫規劃(需求分析、資料表欄位規劃設計、資料庫正規化)&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;以上五點的時間順序建議&lt;BR&gt;1.建議先學程式語言，至少對基本程式有概念&lt;BR&gt;2~5可以同時間交叉學習&lt;/P&gt;
&lt;P&gt;
&lt;HR&gt;
&lt;/P&gt;
&lt;P&gt;最後，當基礎都OK了小喵建議，自己出一些題目給自己，可以參考在網路上看到的一些東西，給自己一些題目來撰寫，這樣可以在撰寫過程中，發現不足的地方並且尋求解決方法，讓自己更為精進。&lt;/P&gt;
&lt;P&gt;以上提供想走ASP.NET開發的人提供參考&lt;/P&gt;&lt;img src ="http://blog.blueshop.com.tw/topcat/aggbug/53569.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>topcat</dc:creator><title>文字型態的資料要用什麼樣的格式儲存?char, varchar, nchar, nvarchar??</title><link>http://blog.blueshop.com.tw/topcat/archive/2007/09/06/52318.aspx</link><pubDate>Thu, 06 Sep 2007 08:39:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/topcat/archive/2007/09/06/52318.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/topcat/comments/52318.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/topcat/archive/2007/09/06/52318.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/topcat/comments/commentRss/52318.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/topcat/services/trackbacks/52318.aspx</trackback:ping><description>&lt;P&gt;使用資料庫儲存文字的資料，在資料庫中會有以下這些的型態可以設定&lt;BR&gt;char, varchar, nchar, nvarchar&lt;BR&gt;那麼到底要用哪種型態比較適合，這些型態之間有何差異呢??&lt;/P&gt;
&lt;P&gt;意義與差異&lt;/P&gt;
&lt;P&gt;從這些字眼上來看，都是有char，差別在var與n這兩個字眼，那麼就先來簡單介紹一下這兩個字眼代表的意義：&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;var：不定長度→有多長存多長&lt;/P&gt;
&lt;P&gt;n：Unicode→無論英文、數字、中文、日文、...每個字都占2Byte。&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;說明一下：&lt;/P&gt;
&lt;P dir=ltr&gt;char與nchar宣告的是固定的長度，因此如果宣告char(5)，但是只放a這個字，那麼就會補另外4個空白，會補空白補滿是他的特性，而nchar(5)也是會放滿5個字，但是每個字無論中英數都會用2個Bytes來存放&lt;/P&gt;
&lt;P dir=ltr&gt;varchar與nvarchar都是不定長度，因此如果宣告varchar(5)，但是只放a這個字，那麼就會放一個a，&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;不會補空白&lt;/FONT&gt;&lt;/STRONG&gt;。而如果宣告nvarhcar(5)那還是只放a這個字，但是會用2Bytes來存放。如果放了【&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;中&lt;/FONT&gt;&lt;/STRONG&gt;】這個中文字，在&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;varchar&lt;/STRONG&gt;&lt;/FONT&gt;會占用&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;2&lt;/FONT&gt;&lt;/STRONG&gt;個位子，但是&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;nvarchar&lt;/STRONG&gt;&lt;/FONT&gt;指占用&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;個位子。&lt;/P&gt;
&lt;P dir=ltr&gt;舉個例子來看&lt;/P&gt;
&lt;P dir=ltr&gt;假設有四個欄位，分別放入【a1中】這樣的字串，比較一下這些的差異如下：&lt;/P&gt;
&lt;P dir=ltr&gt;
&lt;TABLE style="WIDTH: 256pt; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=340 border=0&gt;
&lt;COLGROUP&gt;
&lt;COL style="WIDTH: 71pt; mso-width-source: userset; mso-width-alt: 3008" width=94&gt;
&lt;COL style="WIDTH: 77pt; mso-width-source: userset; mso-width-alt: 3264" width=102&gt;
&lt;COL style="WIDTH: 54pt" span=2 width=72&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 700; FONT-SIZE: 12pt; BACKGROUND: #4f81bd; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 71pt; COLOR: white; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; HEIGHT: 16.5pt; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #4F81BD none" width=94 height=22&gt;資料類型&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 700; FONT-SIZE: 12pt; BACKGROUND: #4f81bd; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 77pt; COLOR: white; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #4F81BD none" width=102&gt;內容&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 700; FONT-SIZE: 12pt; BACKGROUND: #4f81bd; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 54pt; COLOR: white; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #4F81BD none" width=72&gt;占位數&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 700; FONT-SIZE: 12pt; BACKGROUND: #4f81bd; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 54pt; COLOR: white; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #4F81BD none" width=72&gt;Byte數&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BACKGROUND: #dbe5f1; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; HEIGHT: 16.5pt; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #DBE5F1 none" height=22&gt;char(10)&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BACKGROUND: #dbe5f1; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #DBE5F1 none"&gt;a1中+6個空白&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BACKGROUND: #dbe5f1; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #DBE5F1 none" align=right&gt;10&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BACKGROUND: #dbe5f1; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #DBE5F1 none" align=right&gt;10&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; HEIGHT: 16.5pt; BACKGROUND-COLOR: transparent; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" height=22&gt;varchar(10)&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; BACKGROUND-COLOR: transparent; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none"&gt;a1中&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; BACKGROUND-COLOR: transparent; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" align=right&gt;4&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; BACKGROUND-COLOR: transparent; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none"&gt;1+1+2=4&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BACKGROUND: #dbe5f1; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; HEIGHT: 16.5pt; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #DBE5F1 none" height=22&gt;nchar(10)&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BACKGROUND: #dbe5f1; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #DBE5F1 none"&gt;a1中+7個空白&lt;/TD&gt;
&lt;TD class=xl69 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BACKGROUND: #dbe5f1; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #DBE5F1 none" align=right&gt;10&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BACKGROUND: #dbe5f1; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none; mso-pattern: #DBE5F1 none" align=right&gt;20&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD class=xl71 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; HEIGHT: 16.5pt; BACKGROUND-COLOR: transparent; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" height=22&gt;nvarchar(10)&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; BACKGROUND-COLOR: transparent; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none"&gt;a1中&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; BACKGROUND-COLOR: transparent; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none" align=right&gt;3&lt;/TD&gt;
&lt;TD class=xl73 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; FONT-WEIGHT: 400; FONT-SIZE: 12pt; BORDER-LEFT: windowtext 0.5pt solid; COLOR: black; BORDER-BOTTOM: windowtext 0.5pt solid; FONT-FAMILY: 新細明體; BACKGROUND-COLOR: transparent; TEXT-DECORATION: none; text-underline-style: none; text-line-through: none"&gt;2*3=6&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;再來一個比較char(10)與nchar(10)&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style="WIDTH: 495pt; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=653 border=0&gt;
&lt;COLGROUP&gt;
&lt;COL style="WIDTH: 55pt; mso-width-source: userset; mso-width-alt: 2336" width=73&gt;
&lt;COL style="WIDTH: 22pt; mso-width-source: userset; mso-width-alt: 928" span=8 width=29&gt;
&lt;COL style="WIDTH: 22pt; mso-width-source: userset; mso-width-alt: 928" span=2 width=29&gt;
&lt;COL style="WIDTH: 22pt; mso-width-source: userset; mso-width-alt: 928" span=10 width=29&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 55pt; BORDER-BOTTOM: #ece9d8; HEIGHT: 16.5pt; BACKGROUND-COLOR: transparent" width=73 height=22&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" align=right width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;1 &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" align=right width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;2 &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" align=right width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體 color=#ff0000&gt;3 &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" align=right width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;&lt;FONT color=#ff0000&gt;4&lt;/FONT&gt; &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" align=right width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;5 &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" align=right width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;6 &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" align=right width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;7 &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" align=right width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;8 &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" align=right width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;9 &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl66 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" align=right width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;10 &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; WIDTH: 22pt; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width=29&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; HEIGHT: 16.5pt; BACKGROUND-COLOR: transparent" height=22&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;char(10)&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;a&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl68 style="BORDER-RIGHT: black 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體 color=#ff0000&gt;&lt;STRONG&gt;中&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl65 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; HEIGHT: 16.5pt; BACKGROUND-COLOR: transparent" height=22&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;2位&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 17.25pt" height=23&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; HEIGHT: 17.25pt; BACKGROUND-COLOR: transparent" height=23&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl67 style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 16.5pt" height=22&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; HEIGHT: 16.5pt; BACKGROUND-COLOR: transparent" height=22&gt;&lt;FONT face=新細明體&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl70 style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;2&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體 color=#ff0000&gt;3&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;4&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;5&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;6&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;7&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;8&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;9&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl75 style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;10&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 17.25pt" height=23&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; BORDER-TOP: #ece9d8; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: #ece9d8; HEIGHT: 17.25pt; BACKGROUND-COLOR: transparent" height=23&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體&gt;nchar(10)&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: windowtext 0.5pt dashed; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;a&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl73 style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: windowtext 0.5pt dashed; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" align=right&gt;&lt;FONT face=新細明體&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl73 style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl76 style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" colSpan=2&gt;
&lt;P align=center&gt;&lt;FONT face=新細明體 color=#ff0000&gt;&lt;STRONG&gt;中&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: windowtext 0.5pt dashed; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl73 style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: windowtext 0.5pt dashed; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl73 style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: windowtext 0.5pt dashed; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl73 style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: windowtext 0.5pt dashed; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl73 style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: windowtext 0.5pt dashed; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl73 style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: windowtext 0.5pt dashed; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl73 style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl72 style="BORDER-RIGHT: windowtext 0.5pt dashed; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD class=xl73 style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: #ece9d8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT face=新細明體&gt;　&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;因此在規畫上，只要存放的資料&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;有可能有中文&lt;/FONT&gt;&lt;/STRONG&gt;，小喵就會加&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;n&lt;/FONT&gt;&lt;/STRONG&gt;。而除非確定資料固定會是幾位不變，不然&lt;FONT color=#0000ff&gt;&lt;STRONG&gt;資料長度不特定&lt;/STRONG&gt;&lt;/FONT&gt;就會宣告加上&lt;FONT color=#0000ff&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/FONT&gt;。&lt;/P&gt;&lt;img src ="http://blog.blueshop.com.tw/topcat/aggbug/52318.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>topcat</dc:creator><title>查詢DB中各TABLE佔了多少空間的語法</title><link>http://blog.blueshop.com.tw/topcat/archive/2007/01/26/49443.aspx</link><pubDate>Fri, 26 Jan 2007 15:20:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/topcat/archive/2007/01/26/49443.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/topcat/comments/49443.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/topcat/archive/2007/01/26/49443.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/topcat/comments/commentRss/49443.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/topcat/services/trackbacks/49443.aspx</trackback:ping><description>&lt;TEXTAREA class=sql name=code rows=6 cols=50&gt;SELECT OBJNAME=name,MByte=sum(total_pages * 8/1024),UpdateDate=MAX(modify_date) FROM sys.allocation_units
LEFT JOIN sys.partitions T1
ON container_id=hobt_id
LEFT JOIN sys.all_objects T2
ON  T1.object_id=T2.object_id
where total_pages * 8/1024 &amp;gt; 0
group by name
order by sum(total_pages * 8/1024) desc
&lt;/TEXTAREA&gt;&lt;img src ="http://blog.blueshop.com.tw/topcat/aggbug/49443.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>