Выбор значения по умолчанию SQL management studio

#java #sql #sql-server

#java #sql #sql-сервер

Вопрос:

У меня есть SQL Server, и я использую SQL Management Studio. Я хочу выбрать значение по умолчанию для столбца из нескольких таблиц в базе данных. Например, у меня есть база данных DB. В БД у меня есть 3 таблицы — TableA, TableB и TableC. Все они имеют одинаковые столбцы. Я хочу получить значения по умолчанию для столбцов «Клиенты» для таблиц A, B и C.

Это должно быть что-то вроде этого:

 SELECT Column_Default 
FROM Information_Schema.Columns
 WHERE Table_Schema = DB AND 
 Table_Name like 'table%' and
 Column_Name = 'Customers'
  

Но в Table_Schema = DB есть ошибка. Я не уверен, что это должно выглядеть так, как синтаксис SQL. Он работает как MySQL, но не здесь.

Ответ №1:

 SELECT COLUMN_DEFAULT 
FROM   Information_Schema.Columns
WHERE  Table_Schema = 'dbo'  
  AND  TABLE_NAME IN ('A','B','C')  
  AND  COLUMN_NAME = 'Customers'
  

Вы были близки, вам просто нужны были одинарные кавычки вокруг имени схемы таблицы, также использование оператора IN для явного указания имен таблиц вместо использования поиска по шаблону может сделать запрос более надежным, если будет создана новая таблица с похожим именем.

Комментарии:

1. Проблема в том, что это работает, но все еще дает мне пустые результаты. Но этот запрос дает мне правильный вывод, но только для 1 таблицы: ВЫБЕРИТЕ object_definition(default_object_id) В КАЧЕСТВЕ определения ИЗ sys.columns, ГДЕ name =’A’ И object_id = object_id(‘dbo. Клиенты’)

2. @BorislavStefanov если вы получаете нулевые результаты с моим запросом, то это потому, что столбец не имеет значения по умолчанию