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 
  • 相关阅读:
    Java沉思录之重识String
    【python】 爬虫-爬取新闻
    【大数据】水质分析————(数据预处理)对水质图片的处理
    神经网络 鸢尾花数集预测
    【python 基础】词云
    【数据结构】字符串匹配
    【算法】 分治
    【数据结构】队列
    【数据结构】栈 的 顺序表示
    【数据结构】 线性表 的 链式存储结构
  • 原文地址:https://www.cnblogs.com/Snowfun/p/3158631.html
Copyright © 2011-2022 走看看