1

列数に基づいて一時テーブルを作成するには?

たとえば、count が 20 の場合、20 列の一時テーブルを作成します (すべて nvarchar 型です)。

カウントが 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 文字列を別のウィンドウに入れるか、信頼できる場合は を に変更できSELECTますEXEC

于 2013-01-16T20:53:55.150 に答える