1

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

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

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

4

1 回答 1

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 字符串放入另一个窗口,或者如果您信任它,您可以将其更改SELECTEXEC.

于 2013-01-16T20:53:55.150 回答