如何启用SSMS自动刷新架构更改

时间:2019-05-21 12:25:41

标签: c# sql-server intellisense

我有一张桌子,我通过存储过程在其中提交数据。我在表中增加了两列。当我尝试从应用程序代码对表进行查询时,我收到“错误无效的列名'SADC'”,但是当我在SSMS中尝试相同的列时,它将正确返回数据。其他列是使用函数填充的,因此不包含在存储过程中。我理解此问题与刷新SSMS Intellisense缓存有关。我尝试了以下操作,但无济于事: 1.工具->选项->文本编辑器-> Transact-SQL->常规我检查了IntelliSense,发现它已经启用 2.工具->查询-> IntelliSense我已经选择了它。 3.在菜单选项工具->选项->文本编辑器-> Transact-SQL->常规-> IntelliSense下,最大脚本大小设置为“无限制”。我已经做到了 4.CTRL + Shift + R

我剩下的唯一选项是“编辑”菜单中的“刷新Intellisense缓存”。当我单击编辑菜单时,不会出现IntelliSense。我尝试将命令添加到“工具” >>“自定义” >>“命令”的菜单中,但仍然没有刷新。

在我的代码中,我有:

            SqlCommand cmd = new SqlCommand("SELECT DISTINCT EmployeeNumber FROM EmployeeInfo WHERE Active=" + Convert.ToInt32(Helpers.parameters.active) + " AND Source=" + Convert.ToString(Helpers.parameters.zimra) + "", conn);

            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();

该表具有一个新列Source,包含在以上查询中。关于如何刷新表架构的任何建议?如何使IntelliSense自动出现在“编辑”菜单上。

1 个答案:

答案 0 :(得分:1)

您的查询中似乎有一个无界的字符串值。

尝试

SqlCommand cmd = new SqlCommand("SELECT DISTINCT EmployeeNumber FROM EmployeeInfo WHERE Active=" + Convert.ToInt32(Helpers.parameters.active) + " AND Source='" + Convert.ToString(Helpers.parameters.zimra) + "'", conn);

我猜测Convert.ToString(Helpers.parameters.zimra) =未定义的SADC被解释为列名。