通常的存儲過程雖然也可以帶參數,但是如果你的存儲過程的參數是表名、字段名、數據庫名之類的時候,通常的方法就行不通了!
下面是用表名做參數的存儲過程創建:
1
2
3
4
5
6
7
|
CREATE
PROCEDURE SpecialInsertProcedure @TableName
varchar (50),
@userId
varchar (10),
@pwd
varchar (10),
@userRole
int AS exec ( 'insert into ' +@TableName + '(userId,pwd,userRole)
values (' '' +@userId+ '' ',' '' +@pwd+ '' ',' +@userRole+ ')' ) |
1
|
其中的TableName是表名,userId,pwd,userRole是表中的字段。對應的@TableName是傳遞到存儲過程的表名變量, |
1
|
@userId,@pwd,@userRole是需要插入表中的數據; |
1
|
需要注意的是單引號的使用方法,這裏用兩個<SPAN style= "TEXT-DECORATION: underline" >
'' </SPAN>代替字符串裏面的一個 <SPAN style= "TEXT-DECORATION: underline" >
' </SPAN> 其實就是有一個<SPAN style="TEXT-DECORATION: underline"> '
</SPAN> 當作了專業字符。 |
1
|
對應的該存儲過程的執行爲: |
1
|
exec
SpecialInsertProcedure UserInfo,sss,sss,1 |