重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 553|回复: 0
打印 上一主题 下一主题

通过SQL语句生成表字段变量申明

[复制链接]
跳转到指定楼层
楼主
发表于 2024-4-28 22:27:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 郑全 于 2024-4-28 22:28 编辑


select
     case  data_type  
        when 'varchar' then  'declare @' + cast(column_name  as varchar) + space(20-len(column_name)) + ' varchar(' + cast(a.CHARACTER_MAXIMUM_LENGTH as varchar) + ')'
        when 'int' then  'declare @' + cast(column_name  as varchar) + space(20-len(column_name)) + ' int'
        when 'date' then  'declare @' + cast(column_name  as varchar) + space(20-len(column_name)) + ' date'
        when 'datetime' then  'declare @' + cast(column_name  as varchar) + space(20-len(column_name)) + ' datetime'
        when 'numeric' then  'declare @' + cast(column_name  as varchar) + space(20-len(column_name)) + ' numeric(' + cast(a.NUMERIC_PRECISION  as varchar) + ',' + cast(a.NUMERIC_SCALE as varchar) + ')'
        when 'decimal' then  'declare @' + cast(column_name  as varchar) + space(20-len(column_name)) + ' decimal(' + cast(a.NUMERIC_PRECISION as varchar) + ',' +  cast (a.NUMERIC_SCALE as varchar) + ')'
        when 'money' then  'declare @' + cast(column_name  as varchar) + space(20-len(column_name)) + ' money '
        when 'float' then   'declare @' + cast(column_name  as varchar) + space(20-len(column_name)) + ' float '
        else  'declare @' + cast(column_name  as varchar) + ' ' + space(20-len(column_name)) + cast(data_type as varchar)
        end
   from INFORMATION_SCHEMA.COLUMNS  a
   where table_catalog='bak'
    and table_name='V_BA_FIRSTPAGE'
    order by ORDINAL_POSITION;

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-12-1 09:25 , Processed in 0.116128 second(s), 22 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表