存储过程中可以这样写吗?为什么总是出错?
declare @sqlcommand char(200)
select @sqlcommand= 'select '+rtrim(@TableName)+ '.AssessID, '+rtrim(@TableName)+ '.RealPoint, '+rtrim(@TableName)+ '.assessAccord, '+rtrim(@TableName)+ '.ItemComment,AssessItem.ItemName,manager.ManagerName,TotalAssess.CheckComment,TotalAssess.StartTime,TotalAssess.EndTime,TotalAssess.NowTime
from manager,TotalAssess,AssessItem, '+rtrim(@TableName)+ ' where TotalAssess.TotalID= '+rtrim(@TotalID)+ ' and TotalAssess.TotalID=Assess.TotalID and Assess.ManagerID= '+rtrim(@ManagerID)+ ' and Assess.ManagerID=manager.ManagerID and Assess.ItemID=AssessItem.ItemID '
EXEC(@sqlcommand)
.net 2.0的报错信息:
列前缀 'xlglyike ' 与查询中所用的表名或别名不匹配。
列前缀 'xlglyike ' 与查询中所用的表名或别名不匹配。
列前缀 'xlglyike ' 与查询中所用的表名或别名不匹配。
列前缀 'xlglyike ' 与查询中所用的表名或别名不匹配。
列前缀 'AssessItem ' 与查询中所用的表名或别名不匹配。
列前缀 'manager ' 与查询中所用的表名或别名不匹配。
列前缀 'TotalAssess ' 与查询中所用的表名或别名不匹配。
列前缀 'TotalAssess ' 与查询中所用的表名或别名不匹配。
列前缀 'TotalAssess ' 与查询中所用的表名或别名不匹配。
'xlglyike ' 是动态表名
------解决方案--------------------declare @sqlcommand varchar(8000)
select @sqlcommand= 'select '+rtrim(@TableName)+ '.AssessID, '+rtrim(@TableName)+ '.RealPoint, '+rtrim(@TableName)+ '.assessAccord, '+rtrim(@TableName)+ '.ItemComment,AssessItem.ItemName,manager.ManagerName,TotalAssess.CheckComment,TotalAssess.StartTime,TotalAssess.EndTime,TotalAssess.NowTime from manager,TotalAssess,AssessItem, '+rtrim(@TableName)+ ' where TotalAssess.TotalID= '+str(@TotalID)+ ' and TotalAssess.TotalID=Assess.TotalID and Assess.ManagerID= '+str(@ManagerID)+ ' and Assess.ManagerID=manager.ManagerID and Assess.ItemID=AssessItem.ItemID '
EXEC(@sqlcommand)
------解决方案--------------------@TotalID int,
@ManagerID int,
这两个变量是整型的 要用str() 函数把它变成字符串才能连接 而且int型也不能用rtrim啊~~~