如標題所述,目前自己嘗試了一些方法都失敗。
假設我有一個table變數@tempTable
,我想要將其欄位名稱[Type]
,調整為TypeId
,在不使用兩個table變數的情境下,請問要下什麼語法呢?
原始碼如下:
declare @tempTable table (
RowId int identity (1, 1)
, [Type] nvarchar(4000)
)
insert @tempTable ([Type]) values ('Atype')
--找出@tempTable原始的長相
select * from @tempTable
--執行此段程式碼會有錯誤,請問要怎麼調整?
exec sp_rename @tempTable , [Type] , TypeId
--找出@tempTable調整欄位名稱後的長相
select * from @tempTable
@tempTable原始長相
RowId Type
1 Atype
@tempTable調整欄位名稱後的長相
RowId TypeId
1 Atype
錯誤訊息:
程序 sp_rename,行 0 [批次開始行 70] 運算元類型衝突: table 與 nvarchar 不相容
Sql Server不支持重命名表變量列名,只支持Temp跟實體表
另外SP_Rename使用方式是EXEC SP_RENAME '物件' , '新修改名稱', '物件類型'
舉例EXEC SP_RENAME 'TestTable.Column01' , 'Column02', 'COLUMN'
Declare @tempTable table (
RowId int identity (1, 1),
[Type] nvarchar(4000)
)
命名建議統一有 [] 就全部都有不要 又有又沒有....
SELECT
RowID AS RowsAutokey
[Type] AS Type
From @tempTable