我已经在网上搜索并尝试了以下解决方案,但它不起作用;它不会在表格中输入一行..
INSERT INTO [CollisionBegin]
SELECT '999-999-99999-9999-9999', [LocalNum], [version], [Submitted]
FROM [CollisionBegin]
WHERE [UniqueColID] = '2C024576-10BB-4A12-8B6E-BB03191866DE';
我正在尝试做的事情:在表格中找到一行UniqueColdID="2C024576-10BB-4A12-8B6E-BB03191866DE"
这应该检索与 this 对应的行的所有列UniqueColID
。现在我想用NEW UniqueColID, "999-999-99999-9999-9999"
重新插入这条记录。
上面的代码是我在网上找到的解决方案,但它对我不起作用,因为在我的存储过程中执行该语句后,什么也没发生。
这是我的存储过程:
ALTER PROCEDURE [dbo].[AmendInsertDuplicateFields]
AS
BEGIN
INSERT INTO [MVCNew].[dbo].[CollisionBegin]
SELECT
'999-999-99999-9999-9999', [LocalNum], [version], [Submitted]
FROM
[MVCNew].[dbo].[CollisionBegin]
WHERE
[UniqueColID] = '2C024576-10BB-4A12-8B6E-BB03191866DE';
END
我知道我必须明确地向插入提供值:
INSERT INTO [MVCNew].[dbo].[CollisionBegin] (Column1, Column2, Column3, etc)
SELECT Column1, Column2, Column3, etc
FROM...
但是我有大约 8 个表需要为每个表执行此操作,每个表有 30 列,这样会让人感到困惑..
我刚试过:
CREATE TEMPORARY TABLE chan2 ENGINE=MEMORY SELECT * FROM [MVCNew].[dbo].[PrideMVCCollisionBegin] WHERE UniqueColID='2C024576-10BB-4A12-8B6E-BB03191866DE';
UPDATE chan2 SET UniqueColID='999-999-99999-9999-9999';
INSERT INTO [MVCNew].[dbo].[PrideMVCCollisionBegin] SELECT * FROM chan2;
DROP TABLE chan2;
但我得到了错误:
Unknown object type 'TEMPORARY' used in a CREATE, DROP, or ALTER statement.