【发布时间】:2011-10-04 06:54:52
【问题描述】:
如果我放东西
DECLARE @Query VARCHAR(8000)
SET @Query = 'select * from subscriber
where sbs_userid = ' + cast(@UserID as varchar) + '
and SBS_Status in (select statusFlag from #tmpStatusFlag)
and SBS_SourceFlag in (select sourceFlag from #tmpSourceFlag)'
IF (@FirstName !='')
SET @Query = @Query + ' and SBS_FirstName like ''%' + @FirstName + '%'''
IF(@LastName !='')
SET @Query = @Query + ' and SBS_LastName like ''%' + @LastName + '%'''
IF(@Phone !='')
SET @Query = @Query + ' and SBS_WorkPhone like ''%' + @Phone + '%'''
IF(@EmaiAdderess !='')
SET @Query = @Query + ' and SBS_EmailAddress like ''%' + @EmaiAdderess + '%'''
IF(@City !='')
SET @Query = @Query + ' and SBS_City like ''%' + @City + '%'''
IF(@SubListId !='-1')
SET @Query = @Query + ' and SBS_SubListId like ''%' + @SubListId + '%'''
SET @Query = @Query + ' order by SBS_CreationDate desc'
EXEC (@Query)
在我的存储过程中。
我的问题仍然是我得到了存储过程的好处还是这是一种错误的方法
我从不使用它,但我的团队负责人使用它来加快存储过程。可以吗?
已编辑
如果我们使用 sp_executesql 而不是 exec 那么我们可以利用存储过程的好处。这样可以吗?
【问题讨论】:
-
目前这看起来很容易受到 SQL 注入攻击。
标签: sql sql-server-2005 stored-procedures execute