declare @lcTableSource varChar(20)
declare @lcFieldID int
declare @lcFieldName varChar(20)
declear @lcDynamicSQL varChar(200)
select @lcTableSource = 'MyDataBase.dbo.Customer'
select @lcDynamicSQL = 'select @lcFieldID = c.customerid'
+ ' from ' + @lcTableSource + ' c'
+ ' where c.name like ''Test'' '
exec( @lcDynamicSQL )
>
>the last exec() statement gives me the error saying that variable @lcFieldID must be declared... The @lcTableSource will actually be part of a parameter list and qualified for legitimate values. The final result will be more complex because I may need many columns of unknown data types (until passed in).
Why not reference @lcFieldID like @lcTableSource?
SELECT @lcDynamicSQL = 'SELECT ' + @lcFieldID + ' = c.CustomerID'
...
Also, Would you post the finished SP? I curious how your calculating the previous and next 50 from a specific ID.
-Mike