Я использую SQL Server 2005 и должен написать инструкцию select, которая выбирает все строки в таблице, но только для столбцов определенных типов. В моем случае я хочу, чтобы все столбцы, кроме столбцов типа xml, text, ntext, image или nonbinary CLR, определялись пользователем.Выделить все строки таблицы
В этом вопрос. Если вы хотите знать, почему я это делаю, читайте дальше. Я использую EXCEPT
, чтобы определить различия между каждой таблицей в двух базах данных, аналогичные тому, что описано в этом вопросе: SQL compare data from two tables. Я не понимаю, почему в комментарии было предложено INTERSECT
, поэтому вместо этого я использую UNION ALL.
кода я использую:
(select *, 'table a first' as where_missing from A EXCEPT select *,'table a first' as where_missing from B)
union all
(select *,'table b first' as where_missing from B EXCEPT select *, 'table b first' as where_missing from A)
Некоторые из таблиц содержат столбцы типов, которые не работают с EXCEPT
. Поэтому я не хочу выбирать эти столбцы. Я могу получить эту информацию из information_schema.columns, но есть ли хороший способ, который я могу использовать в моем примере выше вместо «*»?
Спасибо!
пожалуйста обеспечивают хороший вопрос или объяснение. это довольно запутанно. – Anvesh
все лучше @ Ану? – user2323503