要执行一个语句,里面有table数据类型,但这样好像不能运行,怎么改才能执行呢?declare @sql varchar(4000)
declare @varTableName varchar(100)
declare @tmpTable table
(ID int,
Name varchar(100),
TypeID int,
CountNum int,
CreatorName varchar(50),
CreateTime datetime,
IsLock bit,
IsElite bit,
IsTop bit,
IsVote bit,
IsAttach bit,
ReplyCount int,
Emotion varchar(100),
IsFocus bit
)set @varTableName='BBS_Subject_293'set @sql='insert into @tmpTable select ID,Name,TypeID,countNum,CreatorName,CreateTime,IsLock,IsElite,IsTop,IsVote,IsAttach,ReplyCount,Emotion,IsFocus
from '+ @varTableName + ' where IsFocus=1'exec(@sql)select * from @tmpTable
服务器: 消息 137,级别 15,状态 2,行 1
必须声明变量 '@tmpTable'。
declare @varTableName varchar(100)
declare @tmpTable table
(ID int,
Name varchar(100),
TypeID int,
CountNum int,
CreatorName varchar(50),
CreateTime datetime,
IsLock bit,
IsElite bit,
IsTop bit,
IsVote bit,
IsAttach bit,
ReplyCount int,
Emotion varchar(100),
IsFocus bit
)set @varTableName='BBS_Subject_293'set @sql='insert into @tmpTable select ID,Name,TypeID,countNum,CreatorName,CreateTime,IsLock,IsElite,IsTop,IsVote,IsAttach,ReplyCount,Emotion,IsFocus
from '+ @varTableName + ' where IsFocus=1'exec(@sql)select * from @tmpTable
服务器: 消息 137,级别 15,状态 2,行 1
必须声明变量 '@tmpTable'。
declare @varTableName varchar(100)
Create table #tmpTable
(ID int,
Name varchar(100),
TypeID int,
CountNum int,
CreatorName varchar(50),
CreateTime datetime,
IsLock bit,
IsElite bit,
IsTop bit,
IsVote bit,
IsAttach bit,
ReplyCount int,
Emotion varchar(100),
IsFocus bit
)set @varTableName='BBS_Subject_293'set @sql='insert into #tmpTable select ID,Name,TypeID,countNum,CreatorName,CreateTime,IsLock,IsElite,IsTop,IsVote,IsAttach,ReplyCount,Emotion,IsFocus
from '+ @varTableName + ' where IsFocus=1'exec(@sql)select * from #tmpTable
LS的朋友,能不能推荐个学习SQL高级语法的书或者教程?SQL自带的HELP好像都没说这些啊?
是的
用sp_executesql
---------
你是在回答這個問題嗎?
set @varTableName='BBS_Subject_293'
这个变量我要通过select name from bbs_board 来得到,所以,每次得到一个NAME,然后填充临时表,是用游标还是不推荐游标?不用游标该怎么做呢?分不够,我晚上用另外一个帐号补给你哈。
请到这里接分,谢谢
(ID int,
Name varchar(100),
TypeID int,
CountNum int,
CreatorName varchar(50),
CreateTime datetime,
IsLock bit,
IsElite bit,
IsTop bit,
IsVote bit,
IsAttach bit,
ReplyCount int,
Emotion varchar(100),
IsFocus bit
)select @sql = ''
select @sql= @sql + ' union all select ID,Name,TypeID,countNum,CreatorName,CreateTime,IsLock,IsElite,IsTop,IsVote,IsAttach,ReplyCount,Emotion,IsFocus
from '+ Name + ' where IsFocus=1' From boardName
select @sql = 'insert into #tmpTable ' + stuff(@sql, 1, 10, '')
exec(@sql)select * from #tmpTabledrop table #tmpTable