十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
set @flag3=@flag3+1;
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站建设、外贸营销网站建设、宿州网络推广、微信小程序开发、宿州网络营销、宿州企业策划、宿州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供宿州建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
set @temp1=DATEADD(M,1,@temp1);
set @temp3=@temp1;
在你循环中赋值的语句,你是想每次循环赋不同的时间,但是在你用exec调用时,只能传入最后计算好的唯一的值,这样可能就查询不到数据了吧,不然你拼接成字符串吧
因为表名是根据月份来创建的,所以创建视图需要利用参数作为表名进行查询
可以再加一个语句判断表是否存在
楼上的说的正确
所谓动态sql语句,就是根据实际情况拼接出的语句
比如有个多条件查询,用户可以选择用名称或者ID来查询:
select * from tableName where id = 100
select * from tableName where name = '张三'
但是我们并不知道用户会用哪个查询条件,这个时候就会用到动态sql
假设@id,@name这两个是取得的用户录入信息
declare @sql varchar(1000)
select @sql = 'select * from tableName where 1=1 '
if @id 0 --如果用户选择了id
select @sql = @sql + ' id = ' + convert(varchar(5),@id)
if @name '' --如果用户在名称栏填写了内容
select @sql = @sql + ' name = ''' + @name + ''''
exec(@sql) --执行最终的sql
例子举的可能不是十分贴切,意思楼主能领会就行。