O V*_*'Ho 2 php sql-server sql-server-2012
我正在从PHP和SSManagement Studio查询MSSQL过程,结果有所不同?
此查询从表中获取以tKey开头的字段.存在两列tKey1和tKey2
程序 sp_myProc
DECLARE @tKeys VARCHAR(100);
SELECT @tKeys = ISNULL(@tKeys + ',', '') + column_name
FROM testweberp.INFORMATION_SCHEMA.columns
WHERE table_name = myTable
AND LEFT(column_name, 4) = 'tKey'
ORDER BY ordinal_position;
SELECT @tKeys
Run Code Online (Sandbox Code Playgroud)
当我从SSMS执行查询时,exec sp_myProc,我得到结果: tKey1,tKey2
当我从php执行查询时mssql_query("exec sp_myProc",$link),我得到了结果:,tKey1,tKey2
是的,发送到php的结果中有一个额外的逗号并且它不是由php生成的,因为如果不是@tKeys,我会返回len(@tKeys),它是11在SSMS和12PHP中吗?
似乎SET CONCAT_NULL_YIELDS_NULL可能是罪魁祸首.
在我的一个数据库上使用类似的查询返回没有前导逗号SET CONCAT_NULL_YIELDS_NULL ON,以及一个前导逗号SET CONCAT_NULL_YIELDS_NULL OFF.
请注意(来自MSDN)
SET CONCAT_NULL_YIELDS_NULL的设置在执行或运行时设置,而不是在分析时设置.
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |