[英]Copy data to temporary table from two different databases having same table in SQL
[英]Two Temporary Table with same name in SQL
我們正在將foxpro數據庫重寫為SQL。 我遇到以下情況。 Foxpro可以在兩個不同的if
語句下創建兩個具有相同名稱的游標。
我試圖在SQL中做同樣的事情。 創建了兩個臨時表。 如下所示:
IF @id = 1
BEGIN
SELECT * INTO #abc from table1
END
IF @id = 2
BEGIN
SELECT * INTO #abc frm table2
END
接下來,我在此處編寫代碼以用另一列更新臨時表列的值。 但是sql向我拋出一個錯誤,提示“數據庫中已經存在一個名為#abc的對象”。
我可以解決這個問題嗎?
謝謝。
而不是使用SELECT INTO
創建表,為什么不先定義表,然后再定義INSERT
(假設臨時表結構對於兩者都相同)?
CREATE TABLE #abc (Col1 Int, Col2 varchar(50))
IF @id = 1
BEGIN
INSERT INTO #abc SELECT * from table1
END
IF @id = 2
BEGIN
INSERT INTO #abc SELECT * from table2
END
對於您的特定用例,假設兩者都具有可以使用的相同結構。
IF @id IN ( 1, 2 )
BEGIN
SELECT *
INTO #abc
FROM table1
WHERE @id = 1
UNION ALL
SELECT *
FROM table2
WHERE @id = 2
END
以避免遇到解析器問題。 我同意Ben的評論,盡管FoxPro代碼的字面翻譯可能會導致您效率低下且難以維護。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.