在sql数据库中student表中有ID,name,classID 三个字段 class表中有ID,className两个字段

declare @classID int---要查询的班级ID
declare @TableName varchar(100)---表的名称
declare @F1 varchar(100)---表中对应字段的名称
set @TableName = 'student'
set @F1 = 'ClassID'---学生表里的班级字段
declare @sql varchar(1000)
declare @a1 int
set @a1 = 0
怎样实现下面这条语句---动态传递值并获取使用过班级编号
set @sql = 'select @a1 = (select count(*) from ' + @TableName +' where @F1 = '+@classID +')'
sc

你是要执行拼出来的SQL语句吗?
如果是,EXEC (@sql)
获取使用过班级编号不明白是什么意思。
是要保存查询过的编号,还是要返回编号。
PS:没看出有用动态SQL的必要。追问

我想要动态的获取某一个班级的ID是否已经被学生表使用过 并且获取班级ID被使用的次数

追答

你是不是想返回的结果中包含班级ID和次数
set @sql = 'select @classID, count(*) from ' + @TableName +' where @F1 = '+@classID'
EXEC (@sql)

如果你只是在学生表这一个表中检查,就没必要用动态SQL

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-19
怎么写sql语句 数据库结构不可能class表里有id和班级名就行 student表里除了id和name,在加个classid,这样student表中id字段是int型,class表追问

我想要动态的获取某一个班级的ID是否已经被学生表使用过 并且获取班级ID被使用的次数