数据库中已经有一个名为“ checks”的对象

时间:2019-02-06 04:27:55

标签: sql sql-server

create table checks
(
    queries int primary key identity(1,1),
    Payee varchar(30),
    Amount decimal(5,2),
    Remarks varchar(50)
);

Microsoft SQL Server抛出此错误

  

数据库中已经有一个名为“ checks”的对象

insert into checks (Payee, Amount, Remarks)
values
('Ma Bell', 150, 'Have sons next time'),
('Reading R.R.', 245.34, 'Train to Chi'),
('Ma Bell', 200.32, 'Cellular Phone'),
('Local Utilities', 98, 'Gas'),
('Joes Stale & Dent', 150, 'Groceries'),
('Cash', 25, 'Wild Night Out'),
('Joans Gas', 25.1, 'Gas');

SQL Server抛出此错误

  

第207级状态1线1的消息
  无效的列名“ Payee”。

我尝试在Microsoft SQL Server中执行查询,并显示了上面提到的错误。

我希望查询能够正常运行

2 个答案:

答案 0 :(得分:2)

您要创建的表已经存在。您可以像下面这样添加新列“ Payee”,而不是重新创建它。

ALTER TABLE checks
ADD Payee varchar(30);

表被更改后,您可以执行插入语句。

如果要删除表并重新创建它,可以使用以下DROP命令删除表。

DROP TABLE checks;

注意:一旦您DROP表,所有现有数据都将被删除。

因此,您的最终查询应如下所示。

--Create the New column Payee if not exists in the table
IF NOT EXISTS (
  SELECT * 
  FROM   sys.columns 
  WHERE  object_id = OBJECT_ID(N'[dbo].[Checks]') 
         AND name = 'Payee'
)
BEGIN
   ALTER TABLE checks
   ADD Payee varchar(30);
END
--Insert the Data

insert into checks (Payee, Amount, Remarks)
values
('Ma Bell', 150, 'Have sons next time'),
('Reading R.R.', 245.34, 'Train to Chi'),
('Ma Bell', 200.32, 'Cellular Phone'),
('Local Utilities', 98, 'Gas'),
('Joes Stale & Dent', 150, 'Groceries'),
('Cash', 25, 'Wild Night Out'),
('Joans Gas', 25.1, 'Gas');

答案 1 :(得分:1)

在运行create语句之前,尝试有条件地删除mNewFileStorage.putFile(uri).addOnSuccessListener(listener); 表(如果存在):

checks