Я создаю запрос, который выберет все данные в таблице. Запрос будет выбирать базу таблицы для переменной, которую я передам хранимой процедуре.Как использовать переменную в предложении FROM в запросе SQL Server?
Здесь, в моем примере. Если я выполню example_sp table1
, он выберет в table1
. То же самое, если я использую example_table table2
, он должен выбрать table2
.
ALTER PROCEDURE example_sp
@type varchar(10), -- value will be `table1` or `table2`
AS
BEGIN
SELECT * FROM @type
END
Если вы собираетесь передать имя таблицы, как это, вы должны использовать тип данных sysname вместо varchar (10). И следуйте примеру, который Gordon опубликовал ниже, убедившись, что вы используете QUOTENAME, как он это сделал в его прекрасном примере. Это значительно поможет снизить риск внедрения sql. –