Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 server SQL列存在但不可见,无法选择_Sql Server_Database Design_Database Schema - Fatal编程技术网

Sql server SQL列存在但不可见,无法选择

Sql server SQL列存在但不可见,无法选择,sql-server,database-design,database-schema,Sql Server,Database Design,Database Schema,SQL Server中的现有列和不存在列 我目前正在使用SQL Server 2017,在tblReport表中有一列EnableStartEndTimes。当尝试对表中的列执行选择时,它会说该列不存在 但是当试图将该列添加到表中时,它会说它确实存在。通过我的C代码,该列不存在 在同一查询窗口内连续运行以下两个查询,选择singular database: 从tblReport中选择EnableStartEndTimes alter table tblReport add EnableStart

SQL Server中的现有列和不存在列

我目前正在使用SQL Server 2017,在tblReport表中有一列EnableStartEndTimes。当尝试对表中的列执行选择时,它会说该列不存在


但是当试图将该列添加到表中时,它会说它确实存在。通过我的C代码,该列不存在

在同一查询窗口内连续运行以下两个查询,选择singular database:

从tblReport中选择EnableStartEndTimes alter table tblReport add EnableStartEndTimes位null

给出了以下结果:

Msg 207,级别16,状态1,第8行无效列名 “EnableStartEndTimes”

完成时间:2021-03-10T09:33:47.0011192+02:00

Msg 2705,16级,状态6,第9行每个表中的列名必须为 唯一的表“tblReport”中的列名“EnableStartEndTimes”为 多次指定

完成时间:2021-03-10T09:33:56.6904942+02:00

运行:

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'tblReport'
AND COLUMN_NAME = 'EnableStartEndTimes'
不返回任何结果

也没有:

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE  COLUMN_NAME = 'EnableStartEndTimes'
设计器中也没有可见的EnableStartEndTimes(大写或小写)

需要注意的几点:

这些查询在同一查询窗口中运行。因此,相同的数据库仍然处于选中状态。 打开和关闭SQL没有区别。 该列在表设计视图中也不可见。 鞋面已被移除,效果无差异。
因此,我的假设是,有一个对该列的引用以前可能创建不正确?在系统表的某个地方。但是,我在任何地方都找不到对EnableStartEndTimes的任何引用?

请尝试运行下面的,并检查架构之间是否存在冲突或其他重复

select Schema_Name(t.schema_id) Schema, t.[name]
from sys.columns c join sys.tables t on t.object_id=c.object_id
where c.name='EnableStartEndTimes'

但在尝试将列添加到表中时。您是如何实现这一点的?如果启用了区分大小写的功能,那么您的查询将在upperTABLE_NAME='tblReport'。。。不会归还任何东西。。。upper将所有内容都转换为大写…请不要将图像用于代码、数据或错误-与直接格式化的文本相比,它很难读取。2件事,确保您在所有情况下都使用完全相同的数据库。。。这个问题被问了很多次,很多时候连接到不同的服务器或数据库。还要确保在所有情况下都使用相同的默认模式。这肯定是沿着这些路线的东西。。。列不会神奇地出现/消失。是否刷新Intellisense?编辑->智能感知->刷新运行上述命令不会返回名为EnableStartEndTimes的列的任何记录?这是问题的一部分。您最近运行过dbcc checkdb吗?可能值得检查是否有任何损坏。未发现任何损坏。。。