如何在SQL Server中的所有大写字母中查找值?

dav*_*mcd 30 sql sql-server uppercase

如何查找全部大写的列值?喜欢LastName = 'SMITH'而不是'Smith'

这是我在尝试的......

SELECT *
  FROM MyTable
 WHERE FirstName = UPPER(FirstName)
Run Code Online (Sandbox Code Playgroud)

Ale*_* K. 53

您可以强制区分大小写的排序规则;

select * from T
  where fld = upper(fld) collate SQL_Latin1_General_CP1_CS_AS
Run Code Online (Sandbox Code Playgroud)


Joe*_*zer 7

尝试

 SELECT *
  FROM MyTable
 WHERE FirstName = UPPER(FirstName) COLLATE SQL_Latin1_General_CP1_CS_AS
Run Code Online (Sandbox Code Playgroud)

此归类允许区分大小写的比较.

如果要更改数据库的排序规则,以便不需要在查询中指定区分大小写的排序规则,则需要执行以下操作(来自MSDN):

1)确保您拥有重新创建用户数据库及其中所有对象所需的所有信息或脚本.

2)使用bcp Utility等工具导出所有数据.

3)删除所有用户数据库.

4)重建master数据库,在setup命令的SQLCOLLATION属性中指定新的排序规则.例如:

Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName 
/SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ] 
/SQLCOLLATION=CollationName
Run Code Online (Sandbox Code Playgroud)

5)创建所有数据库及其中的所有对象.

6)导入所有数据.