set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER PROCEDURE [dbo].[Pr_Plan_TaskSend_GetRequestListIDFromTaskSendID]
    @TaskSendID int
AS
BEGIN
    DECLARE @RequestListID int
    DECLARE @TaskTypeCode int
    SET NOCOUNT ON
    SET @RequestListID='SELECT RequestListID FROM [Plan_TaskSend] WHERE TaskSendID='+CAST( @TaskSendID AS  VARCHAR(8) )
    SET @TaskTypeCode='SELECT TaskTypeCode FROM Task_OtherRequestList WHERE RequestListID='+CAST(@RequestListID AS VARCHAR(8))
    IF @TaskTypeCode IS NULL 
    SET @TaskTypeCode='SELECT TaskTypeCode FROM Task_RequestList WHERE RequestListID='+CAST(@RequestListID AS VARCHAR(8))
    RETURN @TaskTypeCode
   SET NOCOUNT OFF
    end消息 245,级别 16,状态 1,过程 Pr_Plan_TaskSend_GetRequestListIDFromTaskSendID,第 11 行
在将 varchar 值 'SELECT RequestListID FROM [Plan_TaskSend] WHERE TaskSendID=159' 转换成数据类型 int 时失败。

解决方案 »

  1.   

    'SELECT cast(RequestListID  as varchar(10))FROM [Plan_TaskSend] WHERE TaskSendID=159' 
      

  2.   

    DECLARE @RequestListID int
    你定义的int型SET @RequestListID= 你这里赋值成字符串了
      

  3.   

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    goALTER PROCEDURE [dbo].[Pr_Plan_TaskSend_GetRequestListIDFromTaskSendID]
        @TaskSendID int
    AS
    BEGIN
        DECLARE @RequestListID VARCHAR(8)
        DECLARE @TaskTypeCode VARCHAR(8)
        SET NOCOUNT ON
        SET @RequestListID='SELECT RequestListID FROM [Plan_TaskSend] WHERE TaskSendID='+CAST(@TaskSendID AS VARCHAR(8))
        SET @TaskTypeCode='SELECT TaskTypeCode FROM Task_OtherRequestList WHERE RequestListID='+CAST(@RequestListID AS VARCHAR(8))
        IF @TaskTypeCode IS NULL 
        SET @TaskTypeCode='SELECT TaskTypeCode FROM Task_RequestList WHERE RequestListID='+CAST(@RequestListID AS VARCHAR(8))
        RETURN @TaskTypeCode
       SET NOCOUNT OFF
        end
    消息 245,级别 16,状态 1,过程 Pr_Plan_TaskSend_GetRequestListIDFromTaskSendID,第 13 行
    在将 varchar 值 'SELECT T' 转换成数据类型 int 时失败。
      

  4.   

    ALTER PROCEDURE [dbo].[Pr_Plan_TaskSend_GetRequestListIDFromTaskSendID]
        @TaskSendID int ,@TaskTypeCode int output
    AS
    BEGIN
        DECLARE @s nvarchar(4000)
        SET NOCOUNT ON
        SET @s=N'SELECT @TaskTypeCode=TaskTypeCode FROM Task_OtherRequestList WHERE RequestListID
    IN (SELECT RequestListID FROM [Plan_TaskSend] WHERE TaskSendID=@TaskSendID'
    EXEC sp_executesql @s,N'@TaskTypeCode int out,@TaskSendID int',@TaskTypeCode out,@TaskSendID
        IF @TaskTypeCode IS NULL 
        SET @s=N'SELECT @TaskTypeCode=TaskTypeCode FROM Task_RequestList WHERE RequestListID
    IN (SELECT RequestListID FROM [Plan_TaskSend] WHERE TaskSendID=@TaskSendID'
        EXEC sp_executesql @s,N'@TaskTypeCode int out,@TaskSendID int',@TaskTypeCode out,@TaskSendID
       SET NOCOUNT OFF
    end
      

  5.   

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    goALTER PROCEDURE [dbo].[Pr_Plan_TaskSend_GetRequestListIDFromTaskSendID]
        @TaskSendID int
    AS
    BEGIN
        DECLARE @RequestListID VARCHAR(8)
        DECLARE @TaskTypeCode VARCHAR(8)
        SET NOCOUNT ON
        SET @RequestListID='SELECT cast(RequestListID as varchar(8)) FROM [Plan_TaskSend] WHERE TaskSendID='+CAST(@TaskSendID AS VARCHAR(8))
        SET @TaskTypeCode='SELECT TaskTypeCode FROM Task_OtherRequestList WHERE RequestListID='+CAST(@RequestListID AS VARCHAR(8))
        IF @TaskTypeCode IS NULL 
        SET @TaskTypeCode='SELECT TaskTypeCode FROM Task_RequestList WHERE RequestListID='+CAST(@RequestListID AS VARCHAR(8))
        RETURN @TaskTypeCode
       SET NOCOUNT OFF
        end
    消息 245,级别 16,状态 1,过程 Pr_Plan_TaskSend_GetRequestListIDFromTaskSendID,第 13 行
    在将 varchar 值 'SELECT T' 转换成数据类型 int 时失败。
      

  6.   

    4楼
    执行后出错
    消息 102,级别 15,状态 1,第 2 行
    '@TaskSendID' 附近有语法错误。
    消息 102,级别 15,状态 1,第 2 行
    '@TaskSendID' 附近有语法错误。(1 行受影响)(1 行受影响)
      

  7.   

    USE [ITOMS]
    GODECLARE @return_value int,
    @TaskTypeCode intEXEC @return_value = [dbo].[Pr_Plan_TaskSend_GetRequestListIDFromTaskSendID]
    @TaskSendID = 159,
    @TaskTypeCode = @TaskTypeCode OUTPUTSELECT @TaskTypeCode as N'@TaskTypeCode'SELECT 'Return Value' = @return_valueGO