sql 传表名参数

失落之城sl 2014-06-23 10:11:09
我想调用这个表的数据来使用,一次就传一个表名,在网上找到还多例子,都没有写怎么调用这些数据的,求各位解答下
...全文
165 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
以学习为目的 2014-06-23
  • 打赏
  • 举报
回复
引用 5 楼 ready456789 的回复:
[quote=引用 4 楼 galenkeny 的回复:] [quote=引用 2 楼 ready456789 的回复:]

百度看到假如这样:
SET @sql =N'SELECT '+@YDBH+' as YDBH,'+@YDLX+' as YDLX FROM '+ @tablename + ' WHERE pzbh in(select col from dbo.f_splitSTR('''+@IDs+''','',''))'
		
EXEC(@sql)

-------结果-----
		-- YDBH,YDLXBH
		-- H111, 18
那问下怎么调用这个结果的值啊
申明一个变量,然后output放到变量里面输出,然后调取 [/quote]

SET @sql ='SELECT @a ='+@YDBH+',@b ='+@YDLX+' FROM '+ @tablename + ' WHERE pzbh in(select col from dbo.f_splitSTR('''+@IDs+''','',''))'	
        PRINT(@sql)
		exec sp_executesql @sql,N'@a VARCHAR(100) output,@b VARCHAR(100) output', @a= @num  OUTPUT,@b =@DD OUTPUT
        SELECT @num,@DD
这样就好了,已经弄好了,谢谢了,[/quote] 恩恩,共同学习了!
失落之城sl 2014-06-23
  • 打赏
  • 举报
回复
引用 4 楼 galenkeny 的回复:
[quote=引用 2 楼 ready456789 的回复:]

百度看到假如这样:
SET @sql =N'SELECT '+@YDBH+' as YDBH,'+@YDLX+' as YDLX FROM '+ @tablename + ' WHERE pzbh in(select col from dbo.f_splitSTR('''+@IDs+''','',''))'
		
EXEC(@sql)

-------结果-----
		-- YDBH,YDLXBH
		-- H111, 18
那问下怎么调用这个结果的值啊
申明一个变量,然后output放到变量里面输出,然后调取 [/quote]

SET @sql ='SELECT @a ='+@YDBH+',@b ='+@YDLX+' FROM '+ @tablename + ' WHERE pzbh in(select col from dbo.f_splitSTR('''+@IDs+''','',''))'	
        PRINT(@sql)
		exec sp_executesql @sql,N'@a VARCHAR(100) output,@b VARCHAR(100) output', @a= @num  OUTPUT,@b =@DD OUTPUT
        SELECT @num,@DD
这样就好了,已经弄好了,谢谢了,
以学习为目的 2014-06-23
  • 打赏
  • 举报
回复
引用 2 楼 ready456789 的回复:

百度看到假如这样:
SET @sql =N'SELECT '+@YDBH+' as YDBH,'+@YDLX+' as YDLX FROM '+ @tablename + ' WHERE pzbh in(select col from dbo.f_splitSTR('''+@IDs+''','',''))'
		
EXEC(@sql)

-------结果-----
		-- YDBH,YDLXBH
		-- H111, 18
那问下怎么调用这个结果的值啊
申明一个变量,然后output放到变量里面输出,然后调取
失落之城sl 2014-06-23
  • 打赏
  • 举报
回复
引用 1 楼 galenkeny 的回复:
游标循环取表名?
不是取表名,你调用表名来获取表里面的数据,怎么获取啊
失落之城sl 2014-06-23
  • 打赏
  • 举报
回复

百度看到假如这样:
SET @sql =N'SELECT '+@YDBH+' as YDBH,'+@YDLX+' as YDLX FROM '+ @tablename + ' WHERE pzbh in(select col from dbo.f_splitSTR('''+@IDs+''','',''))'
		
EXEC(@sql)

-------结果-----
		-- YDBH,YDLXBH
		-- H111, 18
那问下怎么调用这个结果的值啊
以学习为目的 2014-06-23
  • 打赏
  • 举报
回复
游标循环取表名?
失落之城sl 2014-06-23
  • 打赏
  • 举报
回复
额,解决了。。。哥们可以加你好友不 @galenkeny
失落之城sl 2014-06-23
  • 打赏
  • 举报
回复
引用 6 楼 galenkeny 的回复:
[quote=引用 5 楼 ready456789 的回复:] [quote=引用 4 楼 galenkeny 的回复:] [quote=引用 2 楼 ready456789 的回复:]

百度看到假如这样:
SET @sql =N'SELECT '+@YDBH+' as YDBH,'+@YDLX+' as YDLX FROM '+ @tablename + ' WHERE pzbh in(select col from dbo.f_splitSTR('''+@IDs+''','',''))'
		
EXEC(@sql)

-------结果-----
		-- YDBH,YDLXBH
		-- H111, 18
那问下怎么调用这个结果的值啊
申明一个变量,然后output放到变量里面输出,然后调取 [/quote]

SET @sql ='SELECT @a ='+@YDBH+',@b ='+@YDLX+' FROM '+ @tablename + ' WHERE pzbh in(select col from dbo.f_splitSTR('''+@IDs+''','',''))'	
        PRINT(@sql)
		exec sp_executesql @sql,N'@a VARCHAR(100) output,@b VARCHAR(100) output', @a= @num  OUTPUT,@b =@DD OUTPUT
        SELECT @num,@DD
这样就好了,已经弄好了,谢谢了,[/quote] 恩恩,共同学习了![/quote] 然后我又发现个问题,嘿嘿,我输出的时候为什么就只有一条结果。。。@num,@DD就以一个固定的值,exec后就变了吗?

SET @sql ='SELECT @a = @a +'+@YDBH+'+'',''+'+@YDLX+'+'';'' FROM '+ @tablename + ' WHERE pzbh in(select col from dbo.f_splitSTR('''+@IDs+''','',''))'	

exec sp_executesql @sql,N'@a VARCHAR(max) output',@a=@num OUTPUT

--LLJYSQ131127006,044;LLJYSQ131126004,044;应该是这样的
--LLJYSQ131126004,044;exec输出后却变成这样了
我拼接到一块也是一条数据,不知道是什么情况导致的,确实里面有两条数据

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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