1

Тема: Поле підстановок в MS SQL

Почали вивчати СУБД. Створили невеличку структуру бази даних в Access, але тепер перейшли на MS SQL Server 2014. Переніс свою базу, створену в Access, в MS SQL Server. Виникло одне питання. В Access була дуже зручна штукенція - тип стовпчика "Поле подстановок", за допомогою якого можна було визначати зовнішні ключи однієї таблиці по випадаючому списку назв із зв'язаної таблиці і не треба відкривати кожну таблицю і дивитися ідентифікатори, які треба вставляти в поле зовнішнього ключа таблиці, яка заповнюється.

Так ось в MS SQL Server такого типу поля немає, але я знаю, що якось можна зробити це "поле підстановки", тільки якоїсь дотепної інформації як це зробити знайти не вдалося :/

2

Re: Поле підстановок в MS SQL

Можна пошукати у графічному інтерфейсі Management Studio (якщо у вас сервер 2005+), там є можливості створення таблиць графічно, мо, й знайдете. Тільки кепський з вас вийде програмер, якщо не відвикнете від гуї-конструктора та інших плюшок на користь SQL.

3

Re: Поле підстановок в MS SQL

Bartash написав:

Можна пошукати у графічному інтерфейсі Management Studio (якщо у вас сервер 2005+), там є можливості створення таблиць графічно, мо, й знайдете. Тільки кепський з вас вийде програмер, якщо не відвикнете від гуї-конструктора та інших плюшок на користь SQL.

Так я не кажу про створення таблиць. Я кажу про їх заповнення. Таблиці вже створені і зв'язані і навіть трохи заповнені ще Аксесом. Ми зараз почали писати запити на вибірку із нашої бази. Але ж щоб звідти вибирати, треба там щось мати. І заповнювати ті зовнішні ключи, кожен раз передивляючись зв'язану таблицю не дуже зручна справа.

4

Re: Поле підстановок в MS SQL

1. Покажіть структуру бази.
2. Не зовсім розумію проблему. Заповнити чимось ліхтарним? Прошу:

-- Генеруємо довільне щось у циклі
DECLARE @Num INT
SET @Num = 1

WHILE @Num < 50
BEGIN
    INSERT INTO MyFirstTable (Col1, Col2) VALUES (@Num, 'Someone_' + CAST(@Num AS VARCHAR(3)) )

    SET @Num = @Num + 1
END

-- Вставляємо дані, взяті частково з іншої таблиці (Col1, до слова)
INSERT INTO MySecondTable (Col_1, Col_2)
    SELECT Col1, 'Something #' + CAST(Col1 AS VARCHAR(10))
    FROM MyFirstTable

І так не доведеться переглядати набори значень. А якби значень було кілька сотень тисяч? :)

5 Востаннє редагувалося Faltfromoss (25.12.2014 19:52:14)

Re: Поле підстановок в MS SQL

Bartash написав:

1. Покажіть структуру бази.

База типу "Магазин". Товари, виробники, постачальники, адреси і т. д. Дані повинні нести якийсь сенс, тому циклом її заповнювати мабуть тяжко. Хоча може і можливо, але я не знаю як, бо SQL тільки почали вивчати і про те як циклами заповнювати базу нічого не знаєм. Тому і заповнюєм руками. Там десь 20-30 різноманітних записів буде достатньо, щоб перевіряти як працюють запити.

Ось струтура бази:

http://firepic.org/thumbs/2014-12/25/7q9jf9k7c6gp.jpg