exec 执行SQL出错问题(在线等候!)
有个过程(op_InsertInto)用来处理表和表记录之间的Insert,
动态生成Insert语句后用Exec @strSQL执行出错,提示信息:
The name 'Insert into [EA].dbo.SPC_MAKING_ASSEMBLY(SMA_SMM_ModID,SMA_FillDate,SMA_APOS,SMA_PName)
Select SMA_SMM_ModID,SMA_FillDate,SMA_APOS,SMA_PName From SPC_MAKING_ASSEMBLY where SMA_ID=116832 ' is not a valid identifier.
但将上述单引号中的语句Copy到查询分析器中执行竟然OK,问题会出在哪儿呢?跟贴的路过的大虾请指点!
------解决方案--------------------语句没什么错误,整体的语句是怎样的?
------解决方案--------------------在字符串中使用 '号时,应该写成 ' '
另外在查询分析器中,有时在当编码的字符全部是数字时,可以不用加 '
会不会是这里出了问题
------解决方案--------------------exec @strSQL
你把它改成 print @strSQL
看看打出来的字符串能不能执行都知道那里问题了
------解决方案--------------------@strSourceTable As Varchar(50),存储过程里表名不支持的.可以这样写 @strSourceTable As sysname.调用数据库表名我不知道能不能在参数里写,但是在变量里是可以这样写的( @strSourceTable As sysname),前不久我写ACCESS导入SQLSERVER才写过的。可以实现。如果还不行,等一下我把我的那段代码帖出来,你先调一下看。
------解决方案--------------------1、exec(@strsql) --加个括号
2、exec sp_executesql @sql
另@strsql 必须是 nvarchar类型。