我有一個+15000條目表中的列 - 我想複製整個列,同時保留它的值並以不同的名稱命名。我正在使用Microsoft SQL Server Management Studio。如何使用Microsoft SQL Server複製整個列的值?
我該怎麼做?
謝謝。
我有一個+15000條目表中的列 - 我想複製整個列,同時保留它的值並以不同的名稱命名。我正在使用Microsoft SQL Server Management Studio。如何使用Microsoft SQL Server複製整個列的值?
我該怎麼做?
謝謝。
根據您對原始問題的評論,我瞭解到您試圖在ColumnA中保留25個不同的值,同時將新的ColumnB轉換爲保存10個不同的值。我認爲你可以做下面的代碼。修改我的數據類型以符合您的情況。
declare @ColumnAConverter table (
ColumnA nvarchar(max),
ColumnB nvarchar(max)
)
insert into @ColumnAConverter
(ColumnA, ColumnB)
select 'A', '1'
union all
select 'B', '1'
union all
select 'C', '2'
/* ...continue for all 25 values in the original ColumnA */
update yt
set ColumnB = c.ColumnB
from YourTable yt
inner join @ColumnAConverter c
on yt.ColumnA = c.ColumnA
非常感謝你 - 喬 - 我一定會給這個鏡頭:) – Alex 2010-10-01 19:53:17
創建一個新的列,然後
UPDATE YourTable
SET NewColumn = OldColumn
如果您發佈代碼或XML,請**在文本編輯器中高亮顯示這些行,然後單擊編輯器工具欄上的「代碼」按鈕(101 010)以精確地格式化並語法突出顯示它! – 2010-10-01 19:19:20
ALTER TABLE Boo
Add [NewColumnName] [datetype]
GO
Update Boo
Set NewColumnName = OldColumn
GO
INSERT into tbl (colname,fld1,fld2,fld3,fld4)
SELECT 'NEWNAME' as colname, fld1,fld2,fld3,fld4
FROM tbl where uniqid=[SOMEVAL]
我想你可能誤解了這個問題;這不需要插入新記錄。 – LittleBobbyTables 2010-10-01 19:05:23
如果您發佈代碼或XML,**請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼」按鈕(101 010)以更好地格式化和語法突出顯示它! – 2010-10-01 19:21:18
爲什麼不計算列?
ALTER TABLE Foo ADD NewColumnName AS OldColumnName
這阿洛斯適用的,你想改變一個數字,文本例如
ALTER TABLE Foo ADD NewColumnName AS RIGHT('ABC000000' + CAST(OldColumnName AS varchar(10)), 10)
1 ABC0000001
2 ABC0000002
3 ABC0000003
4 ABC0000004
5 ABC0000005
BEGIN TRANSACTION
ALTER TABLE myTable
Add newcol NVARCHAR(8)
GO
UPDATE myTable
Set newcol = oldcol
GO
COMMIT TRANSACTION
更換NVARCHAR(8),不管你目前的列數據類型。
想要重命名列或想要結束兩列嗎? – 2010-10-01 18:56:16
對不起,應該更清楚。 想要結束兩列不同的名稱相同的值。 – Alex 2010-10-01 19:02:02
@亞歷克斯:我必須知道;爲什麼你會想要兩個不同的列具有相同的值? – 2010-10-01 19:04:54