alter procedure NewUserTableCreation(@Username varchar(50))
as
declare @CreateUserTable NVARCHAR(MAX)
declare @AddRecord NVARCHAR(MAX)
declare @VisitedClothesKids varchar(50)='VisitedClothesKids'
declare @InitialCount varchar(20)='0'
BEGIN
--Building query for creating a user table
SET @CreateUserTable = 'create table ' + @Username +
'_Table(UserActivityData varchar(50),DataValue varchar(20))'
EXEC(@CreateUserTable);
--Adding Records in the user table
SET @AddRecord = 'insert into ' + @Username + '_Table(UserActivityData, DataValue)
values(' + @VisitedClothesKids + ',' + @InitialCount + ')'
EXEC(@AddRecord);
END
GO
Я выполняю эту процедуру из кода C#. Таблица успешно создана, а затем генерируется исключение говоря,Недопустимое имя столбца «Имя столбца» в SQL Server
Недопустимое окнеИМЯстолбец «VisitedClothesKids»
Неверное имя столбца «InitialCount»
Пожалуйста, помогите! Большое спасибо :)
Определенно, код имеет как проблемы с дизайном, так и проблемы безопасности. Я обращаюсь только к «почему этот конкретный случай» не удается, с советами о том, как поймать похожие будущие проблемы. –
Спасибо Эндрю и Филиппу. Проблема решена Да, я использую хранимые процедуры для предотвращения SQL-инъекций. Печально, что код по-прежнему уязвим. Ну, это форма моего академического мини-проекта (с крайним сроком, конечно), поэтому я l обеспокоены безопасностью. Я скоро узнаю, как его создать более безопасным способом. В любом случае, еще раз спасибо! –