не могу получить нужное количество столбцов SQL Server - PullRequest
2 голосов
/ 28 февраля 2011

Я импортировал таблицу в свою базу данных, и для получения количества столбцов и присвоения ее переменной я делаю

SELECT @HowManyColumns = COUNT(COLUMN_NAME) 
  FROM INFORMATION_SCHEMA.COLUMNS 
 WHERE (TABLE_NAME = @table_name )

Но он постоянно сообщает, что счетчик равен 0!

Если я сделаю то же самое для других таблиц, это сработает!

Я обнаружил, что число столбцов таблицы, которая не работает, превышает 40 столбцов. Почему это не работает ... Данные это

Ответы [ 3 ]

3 голосов
/ 28 февраля 2011

Поскольку таблицы без столбцов не существует, это может означать, что предложение WHERE не выполняется. Другими словами, таблица с именем @table_name не существует. Поскольку вы говорите «иногда это работает, а некоторые нет», это сразу же указывает на развертывание с учетом регистра. Убедитесь, что вы всегда используете правильное имя для таблицы с соответствующим регистром, чтобы ваш код работал правильно на серверах, которые развернуты с учетом регистра.

1 голос
/ 28 февраля 2011

Попробуйте вместо этого использовать имя таблицы в виде текстовой строки:

DECLARE 
    @table_name varchar(50),
    @noOfColumns int
SET 
    @table_name = 'table_name'
SET
    @noOfColumns =
        (SELECT count(*)
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_NAME = @table_name)

PRINT @noOfColumns

Ответ, который вы получите - это количество столбцов в переменной @noOfColumns

1 голос
/ 28 февраля 2011

Попробуйте выдачу ВЫБЕРИТЕ DISTINCT TABLE_NAME ОТ ИНФОРМАЦИИ_SCHEMA

и проверьте имя таблицы для регистра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...