У меня есть таблица, в которой есть столбец с именем категории. Тип столбца имеет значения типа «6,7,9,22,44». Я хотел бы знать, является ли этот подход эффективным для SQL Server 2005 или 2008. Я в основном передаю значение «6,7,9,22,44» хранимой процедуре. Я открыты ссылки / предложения для лучшего подхода.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~
Примечание: я должен уточнить, что я поддерживаю приложение, написанное кем-то другим, и столбец категории уже имеет значения, разделенные запятыми. Я бы поместил данные в отдельную таблицу, но я не смогу сделать это в краткосрочной перспективе. Что касается SQL-инъекций - столбец заполняется значениями, отмеченными в списке флажков. Пользователи не могут вводить или вводить какие-либо данные, которые могут повлиять на этот конкретный сохраненный процесс. Возможно ли внедрение SQL по этому сценарию? Пожалуйста, объясните, как. Благодарю.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ * * 1003
CREATE PROCEDURE [dbo].[GetCategories]
-- Add the parameter that contain the string that is passed in
@catstring varchar(300)
AS
DECLARE @SQLQuery nvarchar(500);
BEGIN
/* Build Transact-SQL String with parameter value */
SET @SQLQuery = 'select id,category from categoryTable where id in ('+ @catstring +')'
/* Execute Transact-SQL String */
EXECUTE(@SQLQuery)
END
GO