簡體   English   中英

如何在SQL中創建表,其中列名稱遵循特定模式

[英]How To Create a Table in SQL in which the Column Names Follow Specific Pattern

我想創建一個名為BREAK_EVEN的表,其中的列名稱遵循模式B_E0,B_E1,一直到B_E(n),其中n是我擁有數據的月份數。

MS SQL Server 2012中是否可以使用某種正則表達式在幾行代碼中添加所有這些列?

我認為您可以使用此功能執行您想要的操作:

DECLARE @THE_SQL VARCHAR(8000)
DECLARE @N INT = 5

SET @THE_SQL = 'CREATE TABLE BREAK_EVEN  ('

WHILE @N <> 0
    BEGIN
    SET @THE_SQL = @THE_SQL + ' [B_E' + CONVERT(VARCHAR(10), @N) + '] INT,'
    SET @N = @N - 1
    END

SET @THE_SQL = @THE_SQL + ' ) ON [PRIMARY]'
PRINT @THE_SQL

您也可以使用它來EXECUTE SQL,但是在這些情況下,我發現將它打印出來並手動運行會更安全一些。 這將循環5次(將該數字更改為所需的列數),並寫出CREATE TABLE語句進行匹配。

messages選項卡中的輸出:

CREATE TABLE BREAK_EVEN  ( [B_E5] INT, [B_E4] INT, [B_E3] INT, [B_E2] INT, [B_E1] INT, ) ON [PRIMARY]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM