Stored procedure parameters with literals not working in SQL Server 2008 R2 -


i have stored procedure takes 2 parameters varchar(50). stored procedure few simple queries temp table , returns result set temp table (i removed actual queries)

alter procedure [dbo].[cv_getbooks]     @booknumber varchar(50),     @bookdate varchar(50) begin     -- set nocount on added prevent result sets     -- interfering select statements.     set nocount on;      --a few select statements      if @ismultiple = '0'     begin          select * books booknumber = @booknumber     , bookdate = @bookdate     , bookname  not null     end     else     begin         select * #temp books     booknumber = @booknumber     , bookdate = @bookdate     , bookname   null             select * books     bookauthor not in (select bookauthor #temp)      , booknumber= @booknumber             , bookdate= @bookdate         drop table #temp     end end 

i have query installed on local development machine on sql server 2008. have installed on 2 test machines running windows server 2003 , sql server 2008. stored procedure has been working expected.

cv_getbooks '012345678', '06062012' --returns result set expected 

i moved test server in remote environment running windows server 2008 , sql server 2008 r2. stored procedure no longer works expected. after running sql profiler have confirmed same code being executed:

cv_getbooks '012345678', '06062012' --run on sql server 2008 r2 returns nothing 

when removed quotes query got expected result:

cv_getbooks 012345678, 06062012 --run out quotes server returns expected result set 

i have since installed same stored procedure on local version of sql server 2008 r2 , running expected, literal string quotes in place, in first example.

at first thought escape issue passed parameters doesn't seem correct because passed values not contain single quotes.

having installed , had working on many environments, under impression maybe setting in sql server unaware of.

what causing stored procedure not return result set string literals in place on sql server 2008 r2 instance, work correctly out them there?

you did not post table definition of table books, but

cv_getbooks '012345678', '06062012'  --run on sql server 2008 r2 returns nothing  cv_getbooks 012345678, 06062012  --run out quotes server returns expected result set 

could caused if booknumber , bookdate numeric rather varchar:

leading 0 in ints dropped, , when converted varchar resulting string not contain leading zero.

it's not clear how data in table affects execution (if statement!) in code.


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c++ - Using OpenSSL in a multi-threaded application -

All overlapping substrings matching a java regex -