不帶輸出結果 我們一般會這樣寫
例子:乙個輸出6位遞增號碼結果
alterproc
getcode
@tbvarchar(50
),@tag
varchar(50)as
declare
@sqlstring
nvarchar(max)
set@sqlstring='
select
'''+
@tag
+'''
+right(1000001+isnull(right(max(fcode),6),0),6) from '+
@tb--
print @sqlstring
exec (@sqlstring
)go
但是如果儲存過程需要和其他過程繼續運算,我需要把結果放到乙個變數,這個時候 就需sql內建 儲存過程寫法
先看看語法:
sp_executesql [ @stmt = ] stmt [ ]
然後我們來改造
(用法解釋 : 我們需要把結果放入@temp, 然後 在 sp_executesql 中聲名 @temp的型別 後面把output的變數放後面 , 這樣 temp 的值就會賦給 outvalue 裡面了)
例子:
createprocedure
getcodebyout
@tbvarchar(50
),@tag
varchar(50
),@outvalue
varchar(50
) output
asdeclare
@sqls
nvarchar(4000
) set
@sqls='
select @temp=
'''+
@tag
+'''
+right(1000001+isnull(right(max(fcode),6),0),6) from '+
@tbexec sp_executesql @sqls,n'
@temp varchar(50) output
',@outvalue output
呼叫
declare@username
varchar(50
) exec getcodebyout '
t_car
','hb
',@username
output
select
@username
如果有多個輸出引數 同理依次聲名即可
declare@num
int, @sqls
nvarchar(4000) ,@sname
char(10
)set
@sqls='
select @a=sno,@b=sname from aa
'exec sp_executesql @sqls,n'
@a int output,@b char(10) output
',@num output,@sname
output
select
@num
select
@sname
SQL Server迴圈查詢資料或執行SQL
直接上sql,此實力 適用於修改資料 宣告變數 declare i int declare max int declare groupid int declare userid int set i 1 select max max id from tpersonneltable while i ma...
sql server 2008匯入和匯出sql檔案
匯出表資料和表結構sql檔案 在日常的開發過程中,經常需要匯出某個資料庫中,某些表資料 或者,需要對某個表的結構,資料進行修改的時候,就需要在資料庫中匯出表的sql結構,包括該錶的建表語句和資料儲存語句!在這個時候,就可以利用本方法來操作!步驟閱讀 1開啟sqlserver2008,連線成功後,選擇...
檢視SQLServer最耗資源時間的SQL語句
執行最慢的sql語句 select total elapsed time execution count 1000 n 平均時間ms total elapsed time 1000 n 總花費時間ms total worker time 1000 n 所用的cpu總時間ms total physic...