急啊,在线等!关于动态SQLINSERT的写法

vanjayhsu 2007-12-20 04:13:22
DECLARE @COLUMNNAME VARCHAR(100);
DECLARE @COLFULNAME VARCHAR(100);
SET @COLUMNNAME='旅游景点的距离(米)';
SELECT @COLFULNAME=@COLUMNNAME+':';
EXEC('INSERT INTO dbo.SurveyModel('+@COLUMNNAME+')
SELECT ItemName FROM dbo.Survey_Item A,dbo.Form_Result B,dbo.Form_Info C,dbo.Survey_SubCategory D
WHERE C.ProjectID='+@ProjectID+' AND C.FormID=B.FormID
AND D.SubCategoryDesc='+@COLFULNAME+' AND B.ItemValue=A.ItemID
AND D.SubCategoryID=B.SubCategoryID');
执行提示如下错误:
消息 102,级别 15,状态 1,第 1 行
'(' 附近有语法错误。
消息 102,级别 15,状态 1,第 4 行
'旅游景点的距离(米)'附近有语法错误。
求高手帮忙啊,急啊!!!!!!!
...全文
23 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pt1314917 2007-12-20
+@ProjectID
你的这个变量在哪声明,在哪赋值?
回复
dawugui 2007-12-20
字段名里面不能有()号.这个命名规则不对.
改为:

SET @COLUMNNAME = '旅游景点的距离_米'
回复
vanjayhsu 2007-12-20
SET @COLUMNNAME='旅游景点的距离(米)'; 这里不是赋值了么?最主要是提示消息:
消息 102,级别 15,状态 1,第 4 行
'旅游景点的距离(米)'附近有语法错误。
这个错误不知道怎么解决,好像不能这么写吧?D.SubCategoryDesc='+@COLFULNAME+'
回复
dawugui 2007-12-20
其他类似.
回复
dawugui 2007-12-20
@COLUMNNAME 是空值.没赋予初始值.

加set @COLUMNNAME = '列名'
回复
发动态
发帖子
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
社区公告
暂无公告