函数里不能用EXECUTE吧
改用过程来做
改用过程来做
解决方案 »
- sql server表加行号问题,谢谢
- 如何查询临时表inserted和deleted
- sqlserver循环修改存储过程
- SQLServer2000如何能跨网段用ODBC访问
- 这个查询该怎么写呢? 请高手指点!
- 关于登陆的HASH校验
- 关于搜索条件指定范围的通配符,能匹配多个字符吗
- 求两条SQL语句
- 在sql 中 有一个字段值重复,我想删除只保留一条,应该怎么操作!还有我查询时想查表中的第10条到20条的记录???
- 求SQL语句
- 查询表出现“数据库 ID 15,页 (1:21826) 已标记为 RestorePending,可能表明磁盘已损坏。要从此状态恢复,请执行还原操作。”
- 如何用SQL查询当月销售业绩
--select @classid = b.classid , @re_str = ltrim(b.parentid) + ',' + @re_str from s a , s b where a.classid = @classid and a.parentid = b.classid
这句中的表名如果要变为参数,整个怎么写呢?
函数里面不允许用exec()执行动态的sql语句改用存储过程吧,存储过程也有返回的参数
@classid int output,
@tbTable nvarchar(20)
as
begin
declare @sql nvarchar(4000)
declare @re_str as varchar(100)
set @re_str = ''
select @re_str = ltrim(parentid) from s where classid = @classid
while exists (select 1 from s where classid = @classid and parentid <> 0)
begin
--如果直接写表名,没有问题
set @sql=' select '+@classid+' = b.classid , '+@re_str+'= ltrim(b.parentid) + '','' + '+@re_str+' from '+@tbTable+' a , '+@tbTable+' b where a.classid ='+@classid+' and a.parentid = b.classid'
exec (@sql)
end
end
请高手指教 create FUNCTION Get_test(@Fenhang NVARCHAR(100),@Sql_string text)
RETURNS NVARCHAR(1000)
as
begin
declare @StrRouGuid nvarchar(1000)
set @StrRouGuid=''
select @StrRouGuid=@StrRouGuid+','+rowguid_sale from sp_execsql(@Sql_string) where Fenhang=@Fenhang
set @StrRouGuid=stuff(@StrRouGuid,1,1,'')
return @StrRouGuid
end
调用select szsh.dbo.Get_test('万科','select rowguid_sale from where 1=2')
为什么提示 对象名 'sp_execsql' 无效。
请高手指教create FUNCTION Get_test(@Fenhang NVARCHAR(100),@Sql_string text)
RETURNS NVARCHAR(1000)
as
begin
declare @StrRouGuid nvarchar(1000)
set @StrRouGuid=''
select @StrRouGuid=@StrRouGuid+','+rowguid_sale from sp_execsql(@Sql_string) where Fenhang=@Fenhang
set @StrRouGuid=stuff(@StrRouGuid,1,1,'')
return @StrRouGuid
end
调用select szsh.dbo.Get_test('万科','select rowguid_sale from tbl where 1=2')
为什么提示 对象名 'sp_execsql' 无效。