Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在SQL数据库中创建不存在的列_Sql_Sql Server - Fatal编程技术网

无法在SQL数据库中创建不存在的列

无法在SQL数据库中创建不存在的列,sql,sql-server,Sql,Sql Server,我正在我的数据库上执行以下查询: alter table Client drop column "IsVersionValid" GO alter table Client add "IsVersionValid" bit NULL 结果如下: 味精4924,16级,状态1,第1行 ALTER TABLE DROP COLUMN失败,因为表“Client”中不存在列“IsVersionValid”。 Msg 2705,第16级,第6状态,第3行 每个表中的列名必须是唯一的。多次指定了表“Cli

我正在我的数据库上执行以下查询:

alter table Client drop column "IsVersionValid"
GO
alter table Client add "IsVersionValid" bit NULL
结果如下:

味精4924,16级,状态1,第1行 ALTER TABLE DROP COLUMN失败,因为表“Client”中不存在列“IsVersionValid”。 Msg 2705,第16级,第6状态,第3行 每个表中的列名必须是唯一的。多次指定了表“Client”中的列名“IsVersionValid”


这怎么可能?我正在尝试添加表中不存在的列。我尝试通过ssms的表设计器手动执行此操作。但这给了te同样的结果。

这对我来说就像一个梦(也有双引号),如果存在,请删除列,然后重新创建它

ALTER TABLE Client
DROP COLUMN IF EXISTS IsVersionValid
GO
ALTER TABLE Client ADD IsVersionValid bit NULL

这对我来说就像是一个梦(也有双引号),如果存在,请删除列,然后重新创建它

ALTER TABLE Client
DROP COLUMN IF EXISTS IsVersionValid
GO
ALTER TABLE Client ADD IsVersionValid bit NULL

执行帐户是dbowner吗?正在思考。您确定列名中有双引号吗?SQL Server中的双引号(
)可用于分隔标识;前提是
QUOTED\u标识符设置为
ON
,@SudiptaMondal.
SELECT*FROM“dbo”。“MyTable”
SELECT*FROM[dbo].[MyTable];
是同义词。我唯一能想到的是权限问题和/或导致语句的DDL触发器有不明显的结果。这将在一个干净的数据库中工作。我将检查
sys.triggers
sys.server\u triggers
中是否有任何有趣的内容,它们会主动干扰语句的执行。可以使用
DBCC CHECKDB
DBCC CHECKTABLE
,如果数据库很大,则在表本身上)。除此之外,“关闭并再次打开”的旧IT备用是一个选项:通过脚本/data import/
sp_rename
重新创建整个表和/或整个数据库(当然,一些停机是不可避免的)。顺便说一句,
sp\u rename
可能也会在创建后成功命名一个新列
IsVersionValid
。执行帐户的是dbowner?只是在思考。您确定列名中有
双引号吗?双引号(
)在SQL Server中,可以使用分隔标识;如果
QUOTED_IDENTIFIER
设置为
ON
,@SudiptaMondal.
SELECT*FROM“dbo”。“MyTable”;
SELECT*FROM[dbo].[MyTable];
是同义词。我唯一能想到的是权限问题和/或导致语句的DDL触发器有不明显的结果。这将在一个干净的数据库中工作。我将检查
sys.triggers
sys.server\u triggers
中是否有任何有趣的内容,它们会主动干扰语句的执行。可以使用
DBCC CHECKDB
DBCC CHECKTABLE
,如果数据库很大,则在表本身上)。除此之外,“关闭并再次打开”的旧IT备用是一个选项:通过脚本/data import/
sp_rename
重新创建整个表和/或整个数据库(当然,一些停机是不可避免的)。顺便说一句,
sp_rename
可能也会在创建后成功命名新列
IsVersionValid
。这也不起作用。这是我在执行查询时得到的结果:Msg 2705,级别16,状态6,每个表中的第4行列名必须唯一。表“Client”中的列名“IsVersionValid”是指定的ied不止一次。奇怪的是,这个列不存在,但我也不能添加它,因为它似乎存在。当我浏览SSMS中的表结构时,我看不到该列。它看起来像某种模式损坏。这也不起作用。这是我执行查询时得到的结果:Msg 2705,Level 16,State 6,第4行每个表中的列名必须是唯一的。表“Client”中的列名“IsVersionValid”被多次指定。奇怪的是,该列不存在,但我也不能添加它,因为它似乎存在。我在SSMS中浏览表结构时看不到该列。它看起来像某种模式错误激动。