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

标题: 通过SQL语句生成表字段变量申明 [打印本页]

作者: 郑全    时间: 2024-4-28 22:27
标题: 通过SQL语句生成表字段变量申明
本帖最后由 郑全 于 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;

字段变量定义.png
登录/注册后可看大图