存储过程 select 语句中使用变量问题

createprocedureasd@D_namevarchar(8)asifobject_id('D_name','p')isnullselect*into'D_nam... create procedure asd
@D_name varchar(8)
as
if object_id('D_name','p') is null
select * into 'D_name' from gzb11 where 1=2;
else
print '该表已经存在'
提示select * into 'D_name' from gzb11 where 1=2;
'D_name'附近有语法错误!
展开
 我来答
zjy198518
2012-04-06 · TA获得超过867个赞
知道小有建树答主
回答量:777
采纳率:80%
帮助的人:567万
展开全部
你那样写当然会报错,select * 返回的是一个结果集,而@D_name 只是一个 varchar型变量,当然无法接收了。
select * into 'D_name' from gzb11 where 1=2;
这一句改成
select count(*) into @D_name from gzb11 where 1=2;试试
tianhxk
2012-04-05 · TA获得超过422个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:279万
展开全部
报错吗,主要是 2个单引号引起的
select * into D_name from gzb11 where 1=2;
不过楼主写的这东东,实在是如楼上所说
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
车速10码
2012-04-05 · TA获得超过631个赞
知道小有建树答主
回答量:444
采纳率:100%
帮助的人:119万
展开全部
呃,第一雷是1=2这个条件,不过这个俺偶尔也用,尚能保持冷静。
但真正蛋疼的地方是被 * into D_name 这句雷到了。。。
gzb11 表里面应该只有一项是需要取出来的吧。。。呵呵!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式