я создал следующие хранимые процедуры в SQL Server,Ошибка при прохождении где положение в качестве параметра хранимой процедуры
create procedure sp_test
@columns nvarchar(max),
@tablename nvarchar(max),
@whereClause nvarchar(max)
as
DECLARE @sql AS NVARCHAR(MAX)
SET @sql = 'SELECT ' + @columns + ' FROM ' + @tablename + @whereClause;
EXEC sp_executesql @sql
Я пытаюсь назвать это как этот
exec sp_test 'title,name','person','where name = ''john'''
И я получаю сообщение об ошибке, как это,
Msg 102, Level 15, State 1, Line 1
Неправильный синтаксис NEA r '='.
Side Примечание: вы должны ** ** не использовать 'sp_' префикс для хранимых процедур. Microsoft [зарезервировала этот префикс для собственного использования (см. * Именование сохраненных процедур *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) и вы рискуете столкнуться с именем когда-нибудь в будущем. [Это также плохо для производительности вашей хранимой процедуры] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Лучше просто просто избегать 'sp_' и использовать что-то еще в качестве префикса - или никакого префикса вообще! –
спасибо @ marc_s плохо меняют. – Rajneesh