P*B 发帖数: 944 | 1 在FUNC里面想根据哪个SP调用的这个FUNC来做不同的分支
如果不用input parameter,有没有系统变量能够标识调用者?
MS_SQL SERVER / T-SQL
多谢! |
s**********o 发帖数: 14359 | 2 显然违反了FUNCTION最基本的功能,就是黑箱,除非你把SP的名字作为PARAMETER,
也是愚蠢的,既然SP1这样,SP2那样,那还写什么FUNCTION,直接加到SP里去算了
FUNCTION是用来SHARE的,男的来了进男厕所,女的来进女厕所,还要什么厕所的
FUNCTION,直接写男厕所FUNCTION,女厕所FUNCTION好了,万一又来个FAMILY厕所
你还要拆开重新改,不如单写一个FAMILY厕所FUNCTION
【在 P*B 的大作中提到】 : 在FUNC里面想根据哪个SP调用的这个FUNC来做不同的分支 : 如果不用input parameter,有没有系统变量能够标识调用者? : MS_SQL SERVER / T-SQL : 多谢!
|
n****f 发帖数: 905 | 3 据说 MS SQL 有一个叫 OBJECT_NAME(@@PROCID) 的东西。 不过我没用过, 你可以去
试试。
【在 P*B 的大作中提到】 : 在FUNC里面想根据哪个SP调用的这个FUNC来做不同的分支 : 如果不用input parameter,有没有系统变量能够标识调用者? : MS_SQL SERVER / T-SQL : 多谢!
|
s**********o 发帖数: 14359 | 4 就好比让你建一个厕所,你偏要问我要看用我厕所的人从哪里来的,
有开车来的,有坐车来的,有走着来的,厕所就是用来方便的,管
他是从哪里来的。 |
n****f 发帖数: 905 | 5 您的建議是對的。但是在現實生活了, 有些人是由於各種原因的限制, 使得他們有些
特別的需求。 大家應該盡力去幫助。
【在 s**********o 的大作中提到】 : 就好比让你建一个厕所,你偏要问我要看用我厕所的人从哪里来的, : 有开车来的,有坐车来的,有走着来的,厕所就是用来方便的,管 : 他是从哪里来的。
|
s**********o 发帖数: 14359 | 6 我就是写个FUNCTION建个厕所,大爷您从哪里来到哪里去,
是来上厕所的,还是来砸厕所的,我们管不了,你想管
你就不是建厕所的,是查户口的。
【在 n****f 的大作中提到】 : 您的建議是對的。但是在現實生活了, 有些人是由於各種原因的限制, 使得他們有些 : 特別的需求。 大家應該盡力去幫助。
|
n****f 发帖数: 905 | 7 你的邏輯是對的。 假如我想知道到底有哪一些程序在調用這個, 我也許就是在查戶口。
【在 s**********o 的大作中提到】 : 我就是写个FUNCTION建个厕所,大爷您从哪里来到哪里去, : 是来上厕所的,还是来砸厕所的,我们管不了,你想管 : 你就不是建厕所的,是查户口的。
|
P*B 发帖数: 944 | 8 几位爷先别吵
既然要根据SP来branch,为什么不在SP里实现?
实际情况是几个SP共用一个branch,目前阶段branch内的过程在各种调整,如果把这部
分写在SP里,动一下,就需要同时改动几个SP
OBJECT_NAME(@@PROCID) 里的@@PROCID 是 the current Transact-SQL object
identifier (ID),即当前 FUNC 的object identifier (ID)。 不过按此思路,在
input parameter里加上 @@PROCID, 在 FUNC 里用OBJECT_NAME(@@PROCID)还原出 SP
name, 然后根据SP name branch,可行
多谢诸位
大家继续发言,看有没有更好的办法 |
n****f 发帖数: 905 | 9 這麼說吧, 你要是有條件修改原調用者, 就不應該這樣做。 這樣做, 只是權宜之計
。 臨時解決問題。
要正規做, 二樓說的是對的。
SP
【在 P*B 的大作中提到】 : 几位爷先别吵 : 既然要根据SP来branch,为什么不在SP里实现? : 实际情况是几个SP共用一个branch,目前阶段branch内的过程在各种调整,如果把这部 : 分写在SP里,动一下,就需要同时改动几个SP : OBJECT_NAME(@@PROCID) 里的@@PROCID 是 the current Transact-SQL object : identifier (ID),即当前 FUNC 的object identifier (ID)。 不过按此思路,在 : input parameter里加上 @@PROCID, 在 FUNC 里用OBJECT_NAME(@@PROCID)还原出 SP : name, 然后根据SP name branch,可行 : 多谢诸位 : 大家继续发言,看有没有更好的办法
|
s**********o 发帖数: 14359 | 10 如果只是DEBUG,PROFILER一下就不可以了 |