sql存储过程

足球不是方的 2014-05-04 09:35:17
写一个存储过程,
内容:创建一个表,表的列数是当前月天数
例如:5月
id,col1,col2,col3.......................col31,
4月
id,col1,col2,col3........................col30
创建这样的表
怎么写存储过程
...全文
97 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
足球不是方的 2014-05-12
  • 打赏
  • 举报
回复
查询语句如下 SELECT Id,SeminarTheme,Cost1+Cost2+BreakfastCost+LunchCost+DinnerCost as Cost,Case When SeminarStatus=1 then 'pass' When SeminarStatus=0 then 'no' end AS SeminarStatus FROM sfa_t_TBasSeminar_base case,when语句,我想把这个写成一个存储过程,如下:(出现问题的地方是 SET @SQL中‘pass’的定义,怎么写) create PROCEDURE statustest @StartTime varchar(100), @EndTime varchar(100) as DECLARE @SQL NVARCHAR(1000) DECLARE @sqlwhen NVARCHAR(1000) begin
set @SQL=' ' set @sqlwhen=' ' begin SET @SQL='SELECT Id,SeminarTheme, Cost,Case When SeminarStatus=1 then '+'''pass'''+' When SeminarStatus=0 then 0 end AS SeminarStatus_1 FROM sfa_t_TBasSeminar_base WHERE'+@sqlwhen+'' EXEC(@SQL); PRINT(@SQL); end end 测试语句 exec statustest N'2013-05-12',N'2015-05-12' 错误提示: 列名 'A' 无效。 SET @SQL='SELECT Id,SeminarTheme, Cost,Case When SeminarStatus=1 then '+'''pass'''+' When SeminarStatus=0 then 0 end AS SeminarStatus_1 FROM sfa_t_TBasSeminar_base WHERE'+@sqlwhen+'' 这个种的“PASS”我改怎么写,括号的问题?
  • 打赏
  • 举报
回复
create proc p1
@m int
as
begin
	declare @s varchar(8000) ,@i int,@cnt int
	set @i=1
	set @s='create table tb'+CAST(@m as varchar(2))+'( '
	if @m in(1,3,5,7,8,10,12)
		set @cnt=31
	else if @m in(4,6,9,11)
		set @cnt=30
	else if @m=2--没有判断闰年平年
		set @cnt=28
	while @i<=@cnt
		begin
			set @s=@s+'col'+cast(@i as varchar(2))+' varchar(10),'
			set @i=@i+1
		end
	set @s=SUBSTRING(@s,1,len(@s)-1)+')'
	exec(@s)
end
	
exec p1 5
	
没有判断闰年,平年,这个自己处理。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧