Синтаксическая проблема с sp_executesql

Я пытаюсь написать хранимую процедуру, и я получаю эту ошибку, что я не определил @address, что я и сделал. Я знаю, что мне не хватает мелочи, как мне это изменить?

CREATE PROCEDURE search_domaintable
@link nvarchar(50),
@address nvarchar(50)
AS
EXEC ('SELECT rank , ip FROM dbo.['+@link+'] where [address]=@address ');

Я тоже попробовал это:

CREATE PROCEDURE search_domaintable
@link nvarchar(50),
@address nvarchar(50)
AS
EXEC ('SELECT rank , ip FROM dbo.['+@link+'] where [address]=['+@address+']');

но он принимает значение @address в качестве имени столбца и говорит мне, что такой столбец не существует.

1 ответ

Хранимая процедура должна быть такой:

CREATE PROCEDURE search_domaintable
@link nvarchar(50),
@address nvarchar(50)
AS
EXEC ('SELECT rank , ip FROM dbo.['+@link+'] where address  = ''' + @address + '''');
Другие вопросы по тегам