我把guid 类型的值做参数 ,建立连接表的SQL 语句时 ,说是语法错误。
具体:CERATE PROCEDURE [dbo].[Employee_ByDepartmentID]
@DepartmentID uniqueidentifier
 AS 
SELECT 
 a.name
 FROM UBSEmployee a
     INNER JOIN UBSDepartment_Employee b on b.DepartmentID = @DepartmentID-------------------------------
EXEC @return_value = [dbo].[GetEmployee_ByDepartmentID]
@DepartmentID = 3d940364-70e3-40c8-82e3-a9c4b1a094c4SELECT 'Return Value' = @return_value消息 102,级别 15,状态 1,第 5 行
'd940364' 附近有语法错误。改成  in (select..) 的形式也是 
请问怎么回事呢? 是类型问题?

解决方案 »

  1.   

    uniqueidentifier类型的数据要有分隔符的,
    @DepartmentID = 3d940364-70e3-40c8-82e3-a9c4b1a094c4
    改为
    @DepartmentID = '3d940364-70e3-40c8-82e3-a9c4b1a094c4'
      

  2.   

    EXEC @return_value = [dbo].[GetEmployee_ByDepartmentID]
    @DepartmentID = 3d940364-70e3-40c8-82e3-a9c4b1a094c4SELECT 'Return Value' = @return_value---->EXEC @return_value = [dbo].[GetEmployee_ByDepartmentID]
    @DepartmentID = '3d940364-70e3-40c8-82e3-a9c4b1a094c4'SELECT 'Return Value' = @return_value
      

  3.   

    谢谢 在SQL 语句中怎么改下呢
    INNER JOIN UBSDepartment_Employee b on b.DepartmentID = @DepartmentID -》
      

  4.   

    INNER JOIN UBSDepartment_Employee b on b.DepartmentID = @DepartmentID 
    ------
    这个不用改
      

  5.   

    我在sql server 中 改‘’ 是可以出来结果的
    但是在 程序中是得不到这个结果的 ,SQL 语句不用改吗?
      

  6.   

    谢谢 mengmou()mengmou() 结了