2

我們在一些SQL Server 2005表中使用計算列,它們總是返回特定類型的數據(位,varchar(50)等)。SQL/.NET TableAdapters - 如何在數據庫或數據集中強制鍵入計算列?

這些表由使用強類型數據集和表適配器的.NET數據層使用,但是由於計算列不受限於特定類型(我們總是返回特定類型,但我們可以返回任何內容).NET不會生成強類型列。

這裏有三個問題: - 計算的列通常檢查相關記錄是否具有特定值,或者它們使用XPath從相關XML文檔返回單個值。計算的列是適當的工具,還是有更好的方法來返回這些相關的數據?

  • 我的搜索說不,但是有可能在數據庫本身強制鍵入這些列嗎?

  • 有Visual Studio的DataSet設計,讓我來設置適當的類型和維護他們整個的DataSet/TableAdapter的更新(因爲設計師會查詢數據庫,以更新它的架構)的內部的解決方法嗎?

謝謝!

回答

2

在用於返回這些值的查詢中,可以使用SQL CAST()函數將它們轉換爲所需的任何數據類型。我相信.NET應該識別鑄造的數據類型並將其放入數據集中。

1

首先,他們確實有一個類型。其次,如果客戶端請求它,無論是C API客戶端,C#客戶端還是JDBC客戶端等,SQL Server都會告訴客戶端類型,否則客戶端無法正確識別類型。

第三,通過查看計算列的information_schema.columns(或syscolumns)行,可以找出它們具有的類型。第四,您可以使用CAST運算符將這些列轉換爲與其實際類型兼容的任何類型。

相關問題