簡體   English   中英

如何將行從一個SQL表移動到具有其他列的另一個SQL表?

[英]How to move rows from one SQL table to another SQL table with additional columns?

我正在編寫一個SQL存儲過程,該過程需要將行從Table0移動到Table1 Table1的架構與Table0的架構Table0 ,不同之處在於還有一個名為DataIndex的附加INT列。 在該過程開始時將計算要插入該列的值。 為了討論起見,它總是100。

我編寫了以下SQL來嘗試執行此操作:

INSERT INTO Table1
SELECT *, 100 AS INT_COLUMN_VALUE
FROM Table0;

當我運行此代碼時,出現以下錯誤:無效的對象名稱'INT_COLUMN_VALUE'。

我該如何進行這項工作? 我的數據庫正在運行MS SQL Server 2008。

我將使用列名來通過執行類似的操作來確保數據落入正確的列中。

INSERT INTO Table1 (Column1,Column2,Column3,.....Int_Column) --<--- Int Column in destination table
SELECT Column1,Column2,Column3,..... CAST(Col4 AS INT)      --<--- Computed column Cast as int
FROM Table0;

而且,您無需為INT列賦予別名,只需確保在INSERT INTO語句中提及所有列,並按照INSERT INTO語句中提到的正確順序使用列名選擇SELECT列即可。

  • 從您的代碼中刪除列名INT_COLUMN_VALUE ,然后嘗試運行它(您可能沒有名為INT_COLUMN_VALUE的列)。
  • 您無需在select語句中指定它。
  • 可以在insert語句中指定列名。

暫無
暫無

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

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