【发布时间】:2019-05-11 15:05:01
【问题描述】:
我很困惑,不知道从哪里开始寻找。我有一个表名,它出现在不同大小写的 sys.object 和 SSMS GUI 中,而不是通过 SMO 检索它
例如在 SSMS 中我看到“TABLENAME”,但在 Smo 中我看到“TableName”。这导致 IBM 应用程序出现问题,我正在努力找出原因。
$table = $SmoServer.Databases.Item("MyDb").Tables.Item("TABLENAME","dbo")
Write-Output $table
给定的输出是“表名”。
虽然运行 sql 查询:
select [name] from sys.objects where name = 'TABLENAME'
给定的输出是“TABLENAME”。
这无关紧要,但排序规则不区分大小写。
有人有什么想法吗?
谢谢。
【问题讨论】:
-
有趣的是,这会导致问题,因为 SQL 语言不应该区分大小写。这听起来更像是 IBM 方面的问题。
-
SSMS 和 SMO 都使用目录视图,所以我希望看到相同的案例。你确定你连接到同一个服务器吗?
-
检查 SQL 服务器排序规则,是否区分大小写,并检查同名表是否存在于多个架构中。
-
乔尔,是的,同意。该应用程序很困难,但我仍然想了解正在发生的事情,也许看看我是否能找到解决办法。担。是的,同一台服务器。丹尼尔。如上所述,排序规则不区分大小写,不,只有一个模式:/
-
需要明确的是,我对我建议您自行回答问题的那一点并不讽刺,那是真诚的。问题不应包含答案。
标签: sql-server powershell tsql ssms smo