В моей базе данных SQL я хотел бы сделать таблицу софт-ссылок общего назначения. Возможно, что-то похожее:Значение столбца SQL для таблицы
create table soft_link(
id uniqueidentifier,
name varchar(255),
LINK uniqueidentifier,
TABLE varchar(255),
primary key(id));
Скажем, у меня есть объект «b_object» в другой таблице в базе данных. Столбец LINK будет уникальным идентификатором b_object, а TABLE будет таблицей, в которой b_object хранится в базе данных.
Теперь я хочу сделать одну хранимую процедуру «sp_ResolveSoftLink». Этот метод примет идентификатор мягкой ссылки, просмотрит столбцы LINK и TABLE софт-ссылки, а затем с помощью TABLE и LINK запросит b_object.
Ниже приведен неверный синтаксис SQL, но, надеюсь, он помогает проиллюстрировать мой вопрос. Я хочу, чтобы объединить эти два запроса в одну хранимую процедуру и возвращает результат второго запроса:
select LINK, TABLE from soft_link where id = xxxxxx
select * from TABLE where id = LINK
-- return the result of the second select query
ОСНОВНОЙ ВОПРОС: Как/я могу использовать VARCHAR возвращения из одного запроса, чтобы сформировать еще один запрос в такая же хранимая процедура в SQL?
Это называется динамическим SQL. Вам нужно построить SQL-запрос в виде строки, а затем выполнить его. Точный синтаксис зависит от базы данных. –