我正在學習如何使用SQL和存儲過程。我知道語法不正確:從存儲過程複製表格的數據
將數據從一個表複製到另一個具有存儲過程數據庫的表中。問題是我不知道要複製到哪個表或哪個數據庫。我希望它使用參數,而不是專門指定列。
我有2個數據庫(Master_db和Master_copy)和每個數據庫上的相同表結構。
我想在Master_db中快速選擇一個表格,並將該表格的數據複製到Master_copy表格中並使用相同的名稱。我想出了這樣的事情:
USE Master_DB
CREATE PROCEDURE TransferData
DEFINE @tableFrom, @tableTo, @databaseTo;
INSERT INTO @[email protected]
SELECT * FROM [email protected]
GO;
我能得到的最接近的是這樣的。現在的問題是,我有一個Timestamp列,並且出現錯誤:
「無法將明確值插入到時間戳列中。使用帶列列表的INSERT來排除時間戳列,或將DEFAULT插入時間戳柱。」
USE Kenneth_Integration
GO
CREATE PROCEDURE TransferData
@table SYSNAME
,@databaseTo SYSNAME
AS
DECLARE @sql NVARCHAR(MAX)
SET @sql = 'DELETE FROM ' + @databaseTo + '..' + @table + ' set identity_insert ' + @databaseTo + '.dbo.' + @table +
' on INSERT INTO ' + @databaseTo + '.dbo.' + @table + ' SELECT * FROM Kenneth_Integration.dbo.' + @table
EXEC sp_executesql @sql
GO
我該如何解決這個SP錯誤?
如果您正在複製到可能已經包含一些您正在複製的數據的表中,您是否考慮了該怎麼做?身份專欄也可能是一個問題。 – amelvin 2010-04-23 10:29:14