SQL中存储过程的参数怎样才做可以传给SELECT FROM 语句中做表名

我想写一个存储过程动态的传递表的名子返回结果即CREATEPROCPROC_TEST(@TABLENAMEVARCHAR(100))ASSELECTCOUNT(*)FRO... 我想写一个存储过程 动态的传递表的名子 返回结果

CREATE PROC PROC_TEST (@TABLENAME VARCHAR(100))
AS
SELECT COUNT(*) FROM @TABLENAME

可是上面的语句老是显示不正确
我要怎样做才能实现我想要的效果呢
救助
展开
 我来答
kyklyll12
2010-01-16 · 超过16用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:0
展开全部
CREATE PROC PROC_TEST (@TABLENAME VARCHAR(100))
AS
exec( 'SELECT COUNT(*) FROM '+ @TABLENAME)

复杂点的
CREATE PROC PROC_TEST (@TABLENAME VARCHAR(100))
AS
declare @sql varchar(8000)
set @sql='SELECT COUNT(*) FROM '+ @TABLENAME
exec(@sql )
冬至1997
2010-01-16 · TA获得超过454个赞
知道小有建树答主
回答量:321
采纳率:100%
帮助的人:244万
展开全部
CREATE OR REPLACE PROCEDURE
PROC_TEST(@TABLENAME varchar(100))
IS
BEGIN
SELECT COUNT(*) FROM @TABLENAME;
END PROC_TEST;

这是oracle的存储过程,那个@不清楚加还是不加。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangyanjj
2010-01-16 · TA获得超过143个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:240万
展开全部
修正一下2楼的说法@是sql server中的语法

oracle中你可以把查询组织成字符串,然后执行一下,基本思路同3楼。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ypf199283
2010-01-16 · TA获得超过362个赞
知道小有建树答主
回答量:632
采纳率:0%
帮助的人:433万
展开全部
不能这样写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式