自定义函数出现的问题

xtjack 2003-06-09 12:23:30
我在函数里面动态生成了一个sql语句(也就是一个select语句),我怎么在函数里面得到这个sql的执行结果呀?
declare @csql varchar(200)
set @csql='select datediff(minute,'''+@tDay+' '+@selTime+''','+@selFld+') as t from hrCWAEmpList where empID='''+@empID+''' and datediff(day,cwaDate,'''+@tDay+''')=0'

想得到csql执行的返回结果?各位帮帮忙?
...全文
41 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
愉快的登山者 2003-06-09
  • 打赏
  • 举报
回复
1。若是结果为一个记录集,使用临时表。
create table #t(
datediff int)
go
insert into #t exec (@csql)
2。若只是一个结果,可以使用:
declare @output int
declare @csql varchar(200)
set @csql='select @out = datediff(minute,'''+@tDay+' '+@selTime+''','+@selFld+') as t from hrCWAEmpList where empID='''+@empID+''' and datediff(day,cwaDate,'''+@tDay+''')=0'
execute sp_executesql
@sqlstring,
N'@out int output',
@output=@out output
select @output

shine_wy 2003-06-09
  • 打赏
  • 举报
回复
select @csql
freeliu 2003-06-09
  • 打赏
  • 举报
回复
得到SQL语句后,用PB的动态SQL语句的语法,具体可以参考PB的帮助,查找DYNAMIC关键字。带传入参数和查询结果都可以。
Happiness 2003-06-09
  • 打赏
  • 举报
回复
自定义函数不可以用动态语句

另想办法吧!
xtjack 2003-06-09
  • 打赏
  • 举报
回复
exec @csql 只是执行,但是得不到结果呀?
pengdali 2003-06-09
  • 打赏
  • 举报
回复
declare @csql varchar(200)

create table #aa (a datetime)

set @csql='insert #aa select datediff(minute,'''+@tDay+' '+@selTime+''','+@selFld+')
as t from hrCWAEmpList where empID='''+@empID+''' and datediff(day,cwaDate,'''+@tDay+''')=0'

select * from #aa
weixiao51 2003-06-09
  • 打赏
  • 举报
回复
declare @csql varchar(200)
set @csql='select datediff(minute,'''+@tDay+' '+@selTime+''','+@selFld+') as t from hrCWAEmpList where empID='''+@empID+''' and datediff(day,cwaDate,'''+@tDay+''')=0'
exec (@csql)

另外请注意,你的所有用到的变量都必须是字符型的,如:@tDay等等,以为只有是字符型的才能用 + 符号联起来执行
飞行石 2003-06-09
  • 打赏
  • 举报
回复
修改这一行:
declare @csql varchar(200)
改为:
declare @csql sysname


后面再用exec @csql就正常了
CrazyFor 2003-06-09
  • 打赏
  • 举报
回复
把@tDay+@selTime赋给一个变量,好象就可以不用动态SQL来运行了。
xtjack 2003-06-09
  • 打赏
  • 举报
回复
to shine_wy:
只能读出一个sql字符串中的一个字符
to tj_dns:
出现 只有函数和扩展存储过程才能从函数内部执行 这个错误

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧