zoukankan      html  css  js  c++  java
  • Stored Procedures CASE 用法错误

    create PROCEDURE USP_GetDetail(@ObjectName nvarchar(50))
    as 
    Begin 
        declare @type varchar(10)
        select @type=[type] from sys.objects with(nolock) where name=@ObjectName
        
        case @type
        WHEN 'U' THEN
            exec('select count(1) as 总行数 from ' + @ObjectName + ' with(nolock)'
            exec('select top 100 * from ' + @ObjectName + ' with(nolock)'
        WHEN 'P' THEN
            exec('sp_helptext '+ @ObjectName)
        WHEN 'FN' THEN
            exec('sp_helptext '+ @ObjectName)
        else
            select '不明对象,不能取出对应信息.' as ErrorMessage
        End    
    End 

    提示错误如下:

    正确写法如下:

    看看你知道问题错在哪里没有

    create PROCEDURE USP_GetDetail(@ObjectName nvarchar(50))
    as 
    Begin 
        declare @type varchar(10)
        select @type=[type] from sys.objects with(nolock) where name=@ObjectName
        declare @str nvarchar(100)
        
        select @str = case @type
        WHEN 'U' THEN 
            'select count(1) as 总行数 from ' + @ObjectName + ' with(nolock)' + ' ' 
                            + 'select top 100 * from ' + @ObjectName + ' with(nolock)'
        WHEN 'P' THEN
            'sp_helptext '+ @ObjectName
        WHEN 'FN' THEN
            'sp_helptext '+ @ObjectName
        else
            'select '+ '''不明对象,不能取出对应信息.''' + ' as ErrorMessage'
        End    

        exec(@str)
    End 
  • 相关阅读:
    INewPolygonFeedback接口(实时显示所画多边形的面积)
    RichTextBox追加文本信息,并根据信息的多少自动下移
    Google tile和TMS的索引算法
    出差咸阳
    失败的 炸羊排
    年中总结
    Oracle 两个表之间的数据更新
    ArcEngine下,实现图形的擦除操作(Erase操作)
    C#中使用ListView动态添加数据不闪烁(转)
    出差略阳
  • 原文地址:https://www.cnblogs.com/Snowfun/p/3158631.html
Copyright © 2011-2022 走看看