На самом деле моя голова разрушена, и, как и многие другие проблемы с SQL, я знаю, что это, вероятно, что-то глупое и глупое, но я просто не могу заставить его работать.
У меня есть хранимая процедура, которая это ..
ALTER PROCEDURE [dbo].[RETURN_DATA](@TABLE_param VARCHAR(7),@COUNTRY_param VARCHAR(2),@FILEDATE_param int,@TTKT_param VARCHAR(6))
AS
BEGIN
SET NOCOUNT ON;
SELECT @SQL = 'Select * from ' + @TABLE_param + ' WHERE COUNTRY = ' + @COUNTRY_param + ' AND MONTH(Fil_Dte) = ' + cast(@FILEDATE_param as varchar(20)) + ' AND TRNN = '+ @TKTT_param
EXECUTE(@SQL)
END
Я использую его в приложении Windows Form vb.net, поэтому применяю параметры там. Но пытаясь запустить его в SSMS с этим
exec RETURN_DATA @COUNTRY_param='GB',@FILEDATE_param=4,@TABLE_param='table30',@TTKT_param='000000'
Возвращает ошибку
Invalid column name 'GB'.
, что мне кажется странным, поскольку я никогда не вызывал столбец с именем GB
, но вызывал строки с GB
в столбце COUNTRY
в предложении where?
Я знаю, что это, надеюсь, простое исправление, поэтому любая помощь будет принята с благодарностью, а также, даже если вы считаете, что есть лучший способ написать SP!
Заранее спасибо, ребята.