Azure的MS-SQL和唯一标识符从PHP

问题描述:

SQL命令:Azure的MS-SQL和唯一标识符从PHP

INSERT INTO BRANCH (COMPANY,BRANCH,CODE,NAME) 
    VALUES('CC23E791-088D-4BC4-AC62-2BC9522584D5', 
      '6335E463-9A27-4FEC-8C79-239A574D254B', 
      '1000', 
      'TheName') 

总是失败,错误:

[Microsoft][SQL Server Native Client 10.0][SQL Server]Conversion failed when converting from a character string to uniqueidentifier. 

此命令可以完美运行:

select cast('6335E463-9A27-4FEC-8C79-239A574D254B' as unique identifier) 
select cast('CC23E791-088D-4BC4-AC62-2BC9522584D5' as uniqueidentifier) 

有什么不对?

您不能直接将字符串转换为UUID,您必须提供显式强制转换才能使其工作。这在大多数编程语言中都是等价的。

+0

外界到PHP的作品完美。为什么? – Giannis 2012-02-05 18:25:27

+0

我不确定你在问什么,但是PHP的类型转换比SQL的类型转换要宽松得多,因为PHP是动态类型的,而SQL是静态类型的。 – Polynomial 2012-02-06 11:55:05