Синтаксическая проблема с 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 + '''');