Я пытаюсь создать хранимую процедуру с необязательными параметрами.Я следовал инструкциям, перечисленным здесь .Я также ссылался на этот ТАК вопрос .Однако я продолжаю получать следующую ошибку:
Ошибка преобразования типа данных varchar в int.
Это работает, когда я выполняю его как
EXEC sp_get_user {id#}
или
EXEC sp_get_user NULL, {username}
, но не с
EXEC sp_get_user {username}
Хранимая процедура
@id int = NULL,
@username nvarchar(50) = NULL
SELECT
username = COALESCE(a.Username, b.Username),
password = COALESCE(a.Password, b.Password),
signup_date = COALESCE(a.SignedUpOn, b.Signup_Date)
FROM table1 a
FULL OUTER JOIN table 2 b
ON a.ID = b.ID
WHERE ((a.ID = @id OR @id IS NULL)
AND (a.Username = @username OR @username IS NULL)
OR (b.ID = @id OR @id IS NULL)
AND (b.Username = @username OR @username IS NULL))
Я попытался добавить OPTION(RECOMPILE)
и не получилуспех.Я хочу сделать это динамичным, чтобы другие разработчики могли вызывать этот SP без необходимости каждый раз указывать все параметры.Они будут подключаться через LINQ, если это имеет значение.