1樓:匿名使用者
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 output',
@c=@b output;
然後你可以這樣執行:
declare @b int
exec myproc1 n'convert(int,(select a from ragl))',@b output
select @b
就可以看到結果了,
但是'convert(integer,(select a from ragl))'如果返回欄位a有多個值會發生錯誤,這就是你這個題目最初設計的問題了
首先呢,exec sp_executesql是動態sql語句,並不是儲過程。
其次呢,在這裡@a是儲存過程中的輸入變數,你用
exec myproc1 n'convert(int,(select a from ragl))',@b output 執行的話,
就是把變數n'convert(int,(select a from ragl))'賦值給@a,你也可以是
exec myproc1 11,@b output等
2樓:
看來樓主是不懂儲存過程的使用,人家回答的正確
在開發過程中為什麼需要寫儲存過程
儲存過程說白了就是一堆 sql 的合併。中間加了點邏輯控制。但是儲存過程處理比較複雜的業務時比較實用。比如說,一個複雜的資料操作。如果你在前臺處理的話。可能會涉及到多次資料庫連線。但如果你用儲存過程的話。就只有一次。從響應時間上來說有優勢。也就是說儲存過程可以給我們帶來執行效率提高的好處。另外,程式...
SQL儲存過程問題,請高手幫忙看一下
convert int,prodbrandid convert int,prodcategoryid 都錯了你是拼接的sql,sql是字串,你convert成int是不行的,應改成 convert varchar 8 prodbrandid convert varchar 8 prodcategor...
在sql儲存過程中如何宣告變數賦值變數最好有
sql server 儲存過程中怎麼將變數賦值 sql賦值語句 declare test1 int select test1 111 set test1 222 sql函式賦值,假定count 是自定義函式declare test2 int select test2 count from sys.s...