我在学存储过程,新手set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spMoTestSelect]
@ID           BigInt
AS
BEGIN
select * from [dbo].[tblA] where ID=@ID
ENDexec spTestSelect 81
我其实是想实现:
Select * from tblA Where ID=81但我写成存储过程后,执行存储过程没得到想要的结果。。希望大虾们指点一下。如果有好的学习材料,也希望能共享一下。

解决方案 »

  1.   

    exec spTestSelect @id = 81
      

  2.   

    直接
    Select * from tblA Where ID=81
    有记录不?
      

  3.   

    表tblA的字段id是什么类型的?
      

  4.   

    [spMoTestSelect]
    exec spTestSelect 81 哈哈 老大 你这俩名字不一样的啊
    你调用错了存储过程了
      

  5.   

    我用SQL 2005执行我的存储过程内容如下
    USE [MyDB]
    GODECLARE @return_value intEXEC @return_value = [dbo].[spMoTestSelect]
    @ID = 81,
    SELECT 'Return Value' = @return_valueGO
    没有返回结果
      

  6.   

    用的什么账号执行 exec spTestSelect 81
      

  7.   

    直接执行 exec spMoTestSelect 81 呢
      

  8.   

    不好意思,我存储过程是spMoTestSelect的,我只是在论坛发帖的时候打错,成了:spTestSelect 81
      

  9.   

    IF OBJECT_ID('tblA') IS NOT NULL DROP TABLE tblA
    IF OBJECT_ID('[spMoTestSelect]') IS NOT NULL DROP PROCEDURE [spMoTestSelect]
    GO
    CREATE TABLE tblA(ID BIGINT,VAL VARCHAR(2))
    INSERT INTO tblA
    SELECT 1,'A' UNION ALL
    SELECT 81,'B' UNION ALL
    SELECT 12,'C'
    GO
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    GO
    CREATE PROCEDURE [dbo].[spMoTestSelect]
    @ID BigInt
    AS
    BEGIN
    select * from [dbo].[tblA] where ID=@ID
    END
    GO
    exec [spMoTestSelect] 81
    /*
    81 B
    */