[英]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.