如何根据列数创建临时表?
例如,如果count为20,则创建一个包含20列的临时表(所有都是nvarchar类型)。
如果count为10,则创建仅包含10列的临时表。
答案 0 :(得分:3)
如果真的非常希望按照书面形式执行此操作,则可以使用如下的动态SQL:
DECLARE @ColCount int = 20
DECLARE @Ct int = 1
DECLARE @SQL nvarchar(max) = ''
SET @SQL = 'CREATE TABLE #VarTemp('
WHILE @Ct < @ColCount+1
BEGIN
SET @SQL += 'Col' + CAST(@Ct as nvarchar(8)) + ' nvarchar(256),'
SET @Ct = @Ct + 1
END
SET @SQL = LEFT(@SQL, (LEN(@SQL) - 1))
SET @SQL += ')'
SELECT @SQL
只需将输出的SQL字符串放入另一个窗口,或者如果您信任它,可以将SELECT
更改为EXEC
。