我想从一列复制行到另一列。执行流程很简单。SQL Server:列添加错误
- 检查列是否存在。
- 如果没有 - 加列
- 定义光标和填充行的新列
- 设置列NOT NULL。
不幸的是我得到这种类型的错误。它表示该列不存在。但是我创建了它并且承诺了事务。什么可能是一个原因?谢谢!
消息207,级别16,状态1,行29
无效的列名称FIELD_NAME“。
代码:
begin transaction;
IF NOT EXISTS(SELECT * FROM sys.columns
WHERE Name = N'Field_Name' and Object_ID = Object_ID(N'dbo.Table_Name'))
BEGIN
ALTER TABLE [dbo].[Table_Name]
ADD [Field_Name] VARCHAR(255)
END
commit;
DECLARE
@var1 int,
@var2 varchar(255)
DECLARE copy_cursor CURSOR FOR
SELECT id, Name
FROM Table_Name
OPEN copy_cursor
FETCH NEXT FROM copy_cursor
INTO @var1, @var2
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE Table_Name
SET Field_Name = @var2
WHERE id = @var1
FETCH NEXT FROM copy_cursor
INTO @var1, @var2
END
CLOSE copy_cursor;
DEALLOCATE copy_cursor;
ALTER TABLE Table_Name ALTER COLUMN Field_name varchar(255) NOT NULL
如果表不存在如何添加列? –
如果表格不存在,那么添加一些东西很难:) –
对不起。如果列不存在 –