SQL хранит данные о столбцах - PullRequest
0 голосов
/ 06 апреля 2010

Я изучаю SQL Server Compact для программы, которую я пишу и которая требует локальной базы данных. У меня есть несколько таблиц, каждая из которых имеет разные столбцы, и я хотел бы пометить каждый столбец как определенный тип (не тип данных, а просто целочисленный тег), чтобы программа знала, что с ним делать. Я не разбираюсь в SQL. Как это сделать?

Ответы [ 3 ]

1 голос
/ 06 апреля 2010

Я бы предложил вам создать определяемые пользователем типы и позволить вашему коду работать с тем типом, который вы определили, т. Е.

EXEC sp_addtype telephone, 'varchar(24)', 'NOT NULL'

Теперь ваша программа увидит тип Телефон и решит, что делать

1 голос
/ 06 апреля 2010

Я бы использовал расширенные свойства для хранения этих метаданных. Например:

EXEC sp_addextendedproperty N'columntag', N'123', 'SCHEMA', N'dbo', 'TABLE', N'mytable', 'COLUMN', N'id'

SELECT value AS columntag
FROM fn_listextendedproperty('columntag', 'SCHEMA', 'dbo', 'TABLE', 'mytable', 'column', 'id')

Замените 'columntag' тем, что вы хотите сослаться на ваш "целочисленный тег", как "mytable" с именем вашей таблицы, "id" с именем рассматриваемого столбца, а "123" - это целочисленное значение, которое вы храните для поиска. Первый оператор добавляет расширенное свойство, а второй - как вы могли бы / могли бы получить его программно.

0 голосов
/ 06 апреля 2010

SQL Server хранит эту информацию в системных таблицах.Sysobjects хранят информацию таблицы.Syscolumns содержит информацию о столбце.Вы можете найти типичные данные в systypes.

Sysobjects и syscolumns объединяются в столбце id.Я не помню, чтобы я присоединился к systypes, но быстрый поиск в Google даст вам ответ.

...