Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 265
  • Last Modified:

Salesforce.com: id nvarchar(18) columns have different collations. Why?

Hi All

I've inherited an SSIS 2008R2 + Task Factory package where the data source is Salesforce.com
This source has id columns that are nvarchar(18).  Most of them are collated SQL_Latin1_General_CP1_CI_AS, but there are a couple that are SQL_Latin1_General_CP1_CS_AS and Latin1_General_CS_AS.

Would anyone know what controls the collations of PK's / FK's in Salesforce.com?

Thanks in advance.
Jim
0
Jim Horn
Asked:
Jim Horn
1 Solution
 
JimFiveCommented:
The CI indicates Case Insensitive, while CS indicates Case Sensitive.
0
 
lcohanDatabase AnalystCommented:
"Would anyone know what controls the collations of PK's / FK's in Salesforce.com? "

I believe the question above is not quite correct and/or easy to answer for simple reason that Collation is "controlled" at the Table.Column level and not at the PK/FK constraint level - right?

So I just realized that this can be some sort of answer to the question "what controls the collations of PK's / FK's" - that would be the underlying TableColumn Collation.

Also the different collation may come because the original database was created on one SQL Server having one default collation as per Model database then migrated to a new SQL box with different collation where new column(s) was added.
0
 
Jim HornMicrosoft SQL Server Developer, Architect, and AuthorAuthor Commented:
Received the answer here:

The developer or tool that built the database decided, and if multiple developers were responsible, that would explain the differences. There are only two "correct" data types for ID values. Older databases would probably use a Latin 1 CS char(15) variant, or Latin 1 CI char(18) for newer databases. Anything else would not be the correct data type.
The extra three characters provide uniqueness without sensitivity, so it's no longer required so long as you're using the full 18 character value.
Thanks anyways guys.

>The CI indicates Case Insensitive, while CS indicates Case Sensitive.
That wasn't the question.
0

Featured Post

Veeam and MySQL: How to Perform Backup & Recovery

MySQL and the MariaDB variant are among the most used databases in Linux environments, and many critical applications support their data on them. Watch this recorded webinar to find out how Veeam Backup & Replication allows you to get consistent backups of MySQL databases.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now