У меня есть 2 таблицы одного формата в 2 отдельных базах данных.Запретить выбор столбца, если он не существует
Database1
_________ _____________________ _______________
Code(int) Description(varchar) Class(varchar)
_________ _____________________ ________________
database2
_________ _____________________ ___________
Code(int) Description(varchar) Type(int)
_________ _____________________ ___________
Я хочу написать общий запрос для моего C# приложения, который извлекает значения из обеих баз данных. Я написал следующий запрос
DECLARE @DB = 'Database1'
IF(@DB = 'Database1')
BEGIN
SELECT
ID,[Description],Class
FROM MyTable
END
ELSE
BEGIN
SELECT
ID,[Description],Type
FROM MyTable
END
Однако вышеупомянутый запрос выдает ошибку либо для столбцов Class
или Type
при запуске для Database2
или Database1
соответственно.
PS: Я правильно делаю соединения с БД, а также устанавливаю параметр @DB
соответственно. Логика состоит в том, чтобы выполнить этот запрос дважды, один раз для Database1
и получить соответствующий MyTable
с колонкой Class
и второй раз для Database2
и получить соответствующий MyTable
с колонкой Type
.
Я хочу знать, насколько это возможно для достижения того, что я пытаюсь сделать. Спасибо заранее!
Используйте порядковое: Выберите 1,2,3 FROM MyTable , Также см. Эту статью http://stackoverflow.com/questions/1037174/sql-use-statement-with-variable. Рассмотрим читаемость с помощью такого типа решений. – nshah