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
Post a Comment