我有一个主键 ID 列,我想将其转换为字符串,任何类型的字符串。现在,我知道如何通过使用 CAST 或 CONVERT 为特定值执行此操作。但是我该如何为整个领域做这件事呢?我想我们使用了某种类型的 Transact SQL,但我希望能就如何执行此操作提供一些指示。谢谢。
我有一个主键 ID 列,我想将其转换为字符串,任何类型的字符串。现在,我知道如何通过使用 CAST 或 CONVERT 为特定值执行此操作。但是我该如何为整个领域做这件事呢?我想我们使用了某种类型的 Transact SQL,但我希望能就如何执行此操作提供一些指示。谢谢。
我不确定你所说的“整个字段”是什么意思,但这就是你将 Integer 转换为 varchar 字符串的方式。“第二个”选择证明它是一个字符串,因为你可以在它周围连接括号。
从表中选择行时,您将应用相同的技术。
更改表主键中使用的字段的数据类型是一项不可轻视的任务!
首先,您需要删除主键约束,然后更改数据类型,然后添加新的主键约束。这肯定会导致中断和许多其他潜在问题,因此您需要考虑所有这些影响。
(请注意,这假设您没有为该列指定 IDENTITY。如果您这样做,请参阅https://stackoverflow.com/questions/8230257/remove-identity-from-a-column-in-a-table) .
可能满足您需要的替代方法是向表(或表视图)添加一个计算列,该列包含与 ID 字段相同的值但已转换为字符类型。这不太可能干扰其他事情,但如果在应用程序中使用 SELECT * FROM my_table 语句,仍然可能会造成麻烦。