如何根据列号创建临时表?

时间:2013-01-16 20:44:57

标签: sql-server tsql

如何根据列数创建临时表?

例如,如果count为20,则创建一个包含20列的临时表(所有都是nvarchar类型)。

如果count为10,则创建仅包含10列的临时表。

1 个答案:

答案 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