SQL儲存過程問題,請高手幫忙看一下

2022-12-29 23:06:04 字數 1225 閱讀 8263

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...