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 
  • 相关阅读:
    SQL SERVER数据库优化相关资料
    京东面试题
    Jenkins部署资料
    [POI2005]Bank notes 【多重背包】
    [Usaco2004Feb]Cow Marathon 树的直径
    [ZJOI2008]骑士 基环树
    种树 反悔操作 【贪心】
    Poj2442 Sequence 贪心+堆优化
    洛谷div2【XR-4】歌唱比赛
    洛谷div2【XR-4】模拟赛
  • 原文地址:https://www.cnblogs.com/Snowfun/p/3158631.html
Copyright © 2011-2022 走看看