Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
evanburen
Posting Yak Master
167 Posts |
Posted - 2009-10-29 : 12:17:02
|
| I can't figure out why I'm getting this error messageMsg 137, Level 15, State 2, Procedure p_SearchED, Line 23Must declare the scalar variable "@xid_field".CREATE PROCEDURE [dbo].[p_SearchED] @id_field int = NULL AS DECLARE @sql nvarchar(max), @paramlist nvarchar(4000) SELECT @sql = 'SELECT * FROM Requests WHERE 1 = 1' IF @id_field IS NOT NULL SELECT @sql = @sql + ' AND id_field = @xid_field' --PRINT @sqlSELECT @paramlist = '@xid_field int' EXEC sp_executesql @sql, @paramlist, @xid_field |
|
|
evanburen
Posting Yak Master
167 Posts |
Posted - 2009-10-29 : 13:01:50
|
| The error was on this lineEXEC sp_executesql @sql, @paramlist, @xid_fieldIt should have been thisEXEC sp_executesql @sql, @paramlist, @id_fieldThanks anyway |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2009-10-30 : 02:40:47
|
| You can avoid dynamic sql by using CREATE PROCEDURE [dbo].[p_SearchED]@id_field int = NULL AS DECLARE @sql nvarchar(max),@paramlist nvarchar(4000) SELECT * FROM Requests WHERE id_field = @id_field or @id_field IS NULL MadhivananFailing to plan is Planning to fail |
 |
|
|
jezemine
Master Smack Fu Yak Hacker
2886 Posts |
|
|
|
|
|