免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4217 | 回复: 3
打印 上一主题 下一主题

关于sp_executesql和EXEC执行sql语句能不能直接把结果输出到某局部变量中的问题?(急) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-10-06 16:33 |只看该作者 |倒序浏览
写一段程序,对一个表中符合条件的31个字段进行判断(c01,c02.....c31),(都是BIT类型),
WHILE @sql < = 31
BEGIN
        IF LEN(@sql) = 1
                SET @sql = \'0\' + @sql
       
        SET @sql_str = N\'SELECT is_overtime5 FROM class_setup WHERE class_no  IN
                 (SELECT  c\' + @sql + \' FROM class_plan WHERE staff_no =  \'\'\' + @p_staff_no + \'\'\' AND year_month = \' + @year_month +\')\'
        -- SELECT @sql_str  
        EXECUTE  @sql_str
                         IF .....> 0
                                           ........
                         else
                                        .............
........
END

..............然后怎么样把执行出来的结果进行判断?判断之后才能进行下面的
如果直接在!@sql_str中加入一个 @valid = is_overtime5 那是不行的,而用sp_executesql好像不能输出把.....
所以求助高手~~~~

论坛徽章:
0
2 [报告]
发表于 2005-10-06 16:39 |只看该作者

解释一下

就是class_plan中有31个字段(c01 c02.........c31)每个
字段储存的内容都是class_setup表中的 class_no字段的内容

而我要做的是 找到符合条件的class_plan 表中某个字段(C0X) 内容,
看他在class_no 表中的 is_overtime5是否为零

论坛徽章:
0
3 [报告]
发表于 2005-10-06 16:58 |只看该作者
呵呵 自己做出来了~~原来sp_executesql 可以输出变量啊

论坛徽章:
0
4 [报告]
发表于 2005-10-06 17:05 |只看该作者
SET @sql_str = N\'SELECT @aa = is_overtime5 FROM class_setup WHERE class_no  =
                 (SELECT TOP 1 c\' + @sql + \' FROM class_plan WHERE staff_no =  \'\'\' + @p_staff_no + N\'\'\' AND year_month = \' + @year_month + N\')\'
        EXECUTE  sp_executesql @sql_str , N \' @aa  BIT  OUTPUT \',@valid OUTPUT

好像是这么写的把 .为什么有错误?


服务器: 消息 214,级别 16,状态 2,过程 sp_executesql,行 30
过程需要参数 \'@statement\' 为 \'ntext/nchar/nvarchar\' 类型。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP