1樓:匿名使用者
convert(int,@prodbrandid)convert(int,@prodcategoryid)都錯了你是拼接的sql,sql是字串,你convert成int是不行的,應改成:
convert(varchar(8),@prodbrandid)convert(varchar(8),@prodcategoryid)
2樓:瘋狂**
set @sql = 'where prodbrandid = '+ @prodbrandid
不需要加convert的
會自動進行隱式資料轉換的
alter procedure [dbo].[mainsearch]
@prodbrandid int,
@prodcategoryid int
asdeclare @sql nvarchar(100)
if @prodbrandid is not null
begin
set @sql = 'where prodbrandid = ' + @prodbrandid
endif @prodcategoryid is not null
begin
if @sql is not null
set @sql = @sql + ' and where prodcategoryid = ' + @prodcategoryid
else set @sql = ' where prodcategoryid = ' +@prodcategoryid
endexecute('select * from dbo.product' + @sql)
return
3樓:匿名使用者
請參見我在這裡的回答,謝謝!
另,這裡所用的「declare @sql nvarchar(100)」定義方式是ok的,不過長度 100 可能少了,建議改為500或1000.
~chenjin99
sql儲存過程問題,請高手幫忙解決,十萬火急!!!
4樓:匿名使用者
好幾處中間沒有空的,把語句在整理整理吧
between @begin and @end' 改為between '+@begin+' and '+@end
sql 儲存過程變數賦值問題,SQL 儲存過程變數賦值問題
declare user varchar 1000 declare motable varchar 20 select motable mt 10 declare sql nvarchar 4000 定義變數,注意型別 set sql select user count distinct useri...
請高手幫忙這個在儲存過程中怎麼寫
create proc dbo myproc1 a nvarchar 100 b int output as declare sql as nvarchar 200 set sql n set c a n exec sp executesql stmt sql,params n c as int o...
SQL語句查詢問題,高手請現身,一個SQL語句查詢問題,高手請現身
因sql表沒有記錄號屬性,所以所謂第一行到第n行,在沒有給出排序條件的情況下,是不能確定的記錄集 所以,您需要給出排序條件或對錶按一定的欄位進行了索引,才能確定哪一條記錄是第幾行 比如,您是要按a排序,那不就是全部記錄嗎?就不需要查詢條件了 如果是按b排序或索引,即麼可以這樣求您的記錄集 selec...