| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4725 人关注过本帖
标题:开头的 标识符 太长
取消只看楼主 加入收藏
tjuair
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-2
收藏
 问题点数:0 回复次数:3 
开头的 标识符 太长

我在编写存储过程时,sql语句过长,查询分析器报错显示:
开头的 标识符 太长。最大长度为 128。
请问各位高手,遇到这种情况该怎么办。
我的程序是个插入语句,由于是有选择性地插入,导致语句过长,所以语句不能变短。
还有就是语句中包含用变量表示的表名,所以只能用带双引号的语句的形式表示,不能直接写成。
请问用变量表示动态表名,是不是只有通过限定一个双引号括起来的语句才能实现啊,有没有什么别的方法。
这两方面一限制,我很难做了!!
我想了一下午了,也查了一些资料,都没找到好方法,请大家赐教!!!

搜索更多相关主题的帖子: 语句 变量 引号 动态 选择性 
2007-01-02 19:54
tjuair
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-2
收藏
得分:0 
这个问题,我找了很长时间,也没解决,我觉得是很常见的问题,大家遇到都是怎么解决的啊,sql既然限制了语句的长度,应该有解决的方法阿。
我是在存储过程中进行编程的,参数中含有表名和各字段名
2007-01-02 19:56
tjuair
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-2
收藏
得分:0 

if exists(select name from sysobjects
where name='cangku_in_' and type='p')
drop procedure cangku_in
go

CREATE PROCEDURE cangku_in
@BM char(40),@MCh char(40),@Shzm char(40),@CLFL char(40),
@RiQi smalldatetime,@ShiJian datetime,@GuiGe char(40),@DanWei char(4),
@DanJia float,@ShuLiang float,@CheDui char(40),@LuDui char(20),
@CangKu char(10),@WeiZhiHao char(10),@GongHuoShang char(40),
@ChanDi char(40),@PinPai char(40),@ChangJia char(40),@FPH char(40),
@name char(40)
AS
declare @sql nvarchar(4000)

set @sql="insert into "+@name+" (BM,MCh,Shzm,CLFL,RiQi,ShiJian,GuiGe,DanWei,DanJia,
ShuLiang,CheDui,LuDui,CangKu,WeiZhiHao,GongHuoShang,ChanDi,PinPai,ChangJia,FPH)
values(@BM,@MCh,@Shzm,@CLFL,@RiQi,@ShiJian,@GuiGe,@DanWei,@DanJia,
@ShuLiang,@CheDui,@LuDui,@CangKu,@WeiZhiHao,@GongHuoShang,@ChanDi,@PinPai,@ChangJia,@FPH)"

execute(@sql)
GO
是一个存储过程,其中name是个表名

2007-01-02 20:25
tjuair
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-2
收藏
得分:0 

版主,我还有救吗??
这种方法是不是行不通啊,还有没有别的实现思路

2007-01-02 20:44
快速回复:开头的 标识符 太长
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021555 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved