2

Мы используем рассчитанные столбцы в нескольких таблицах SQL Server 2005, которые всегда возвращают данные определенного типа (бит, varchar (50) и т. Д.).SQL/.NET TableAdapters - Как сильно вывести расчетные столбцы в базе данных или в DataSet?

Эти таблицы используются слоем данных .NET с использованием строго типизированных наборов данных и табличных адаптеров, однако, поскольку вычисленные столбцы не привязаны к определенному типу (мы всегда возвращаем определенный тип, но мы можем что-то возвращать). NET не генерирует строго типизированные столбцы.

Три вопроса здесь: - Вычисляемые столбцы обычно проверяют, что связанные записи имеют определенные значения, или возвращают одно значение из связанного документа XML с использованием XPath. Вычисляют ли столбцы подходящий инструмент для этого или есть лучший способ вернуть эти связанные части данных?

  • Мои поиски говорят «нет», но можно ли строго указать эти столбцы в самой базе данных?

  • Есть обходной путь внутри DataSet дизайнера Visual Studio, которая позволила бы мне установить соответствующие типы и поддерживать их через DataSet/обновления TableAdapter (так как конструктор будет запрашивать базу данных для обновления это схема)?

Спасибо!

ответ

2

В запросах, которые используются для возврата этих значений, вы можете использовать функцию SQL CAST(), чтобы отличать их от любого типа данных. Я считаю, что .NET должен распознать литой тип данных и поместить этот тип в набор данных.

1

Во-первых, у них есть тип.

Во-вторых, SQL Server будет указывать клиентам тип, если клиент запрашивает его, будь то клиент C API, клиент C#, клиент JDBC и т. Д. В противном случае клиенты не могут корректно котировать тип.

В-третьих, вы можете узнать, какой тип они имеют, посмотрев строку information_schema.columns (или syscolumns) для вычисленных столбцов.

В-четвертых, вы можете использовать оператор CAST для перевода этих столбцов в любой тип, совместимый с их реальными типами.

 Смежные вопросы

  • Нет связанных вопросов^_^