临时表动态添加列

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

alter PROCEDURE [dbo].[TestingAvailability]
@HoursStartTime INT,
@HoursEndTime INT
AS
BEGIN

DECLARE @VisitingHoursStartTime AS INT --Cursor Local Variables
DECLARE @VisitingHoursEndTime AS INT

SET @VisitingHoursStartTime = @HoursStartTime -- morning 9 am
SET @VisitingHoursEndTime = @HoursEndTime-- evening 6 pm

CREATE TABLE #Temp(Id NVARCHAR(50)) -- Creating Temp Table

-- Loop to add columns to temp table
WHILE (@VisitingHoursStartTime <= @VisitingHoursEndTime)
BEGIN
DECLARE @DynamicSQL VARCHAR(500)

IF NOT EXISTS ( SELECT * FROM SYS.COLUMNS WHERE OBJECT_ID = OBJECT_ID('[dbo].[#Temp]') AND NAME = '@VisitingHoursStartTime' )
BEGIN
SET @DynamicSQL = 'ALTER TABLE #Temp ADD ['+ CAST(@VisitingHoursStartTime AS NVARCHAR(100)) +'] NVARCHAR(100) NULL'
EXECUTE (@DynamicSQL)
END

SET @VisitingHoursStartTime = @VisitingHoursStartTime + 1
IF @VisitingHoursStartTime = @VisitingHoursEndTime + 1
BREAK;
END

SELECT * FROM #Temp

IF EXISTS(SELECT * FROM sysobjects WHERE NAME LIKE '%#Temp%')
DROP TABLE #Temp
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值