Sql Server根据表名生成查询的存储过程(查询条件可选)

  static void Main(string[] args)
        {

            string 表名 = "water_emstime";
            string sql = "exec GetTableSelect " + 表名;
            string ConString = "server=xxx.xxx.xx.xx;database=newFW;uid=sa;pwd=sa";
            SqlDataAdapter da = new SqlDataAdapter(sql, ConString);
            DataSet ds = new DataSet();
            da.Fill(ds);
            string ParmsList = "";
            foreach (DataRow item in ds.Tables[0].Rows)
            {
                ParmsList += item[0].ToString() + "\n";
            }
            string Select = "";
            Select += ds.Tables[1].Rows[0][0].ToString()+"\n";
            foreach (DataRow item in ds.Tables[2].Rows)
            {
                Select += item[0].ToString() + "\n";
            }
            //根据表生成的查询存储过程
            string procSelect = string.Format(@"create proc [dbo].[get_{0}]
                                (
            	                    {1}
                                )
                                as
                                begin
            	                    {2}
                                end", 表名, ParmsList, Select);//表名 、参数列表 、查询语句

                    // create proc [dbo].[oper_water_alarm]
                    //(
                    //    @Param_monitoring_mn varchar(32)=Null,
                    //    @Param_factor_id varchar(32)=Null,
                    //    @Param_datatime datetime=Null,
                    //    @Param_value numeric(9)=Null,
                    //    @Param_flag varchar(10)=Null,
                    //    @Param_action int
                    //)
                    //as
                    //begin
                    //    if(@Param_action=0)
                    //    begin
                            //    insert into water_alarm(monitoring_mn,
                            //factor_id,
                            //datatime,
                            //value,
                            //flag)
                            //        values (@Param_monitoring_mn,
                            //@Param_factor_id,
                            //@Param_datatime,
                            //@Param_value,
                            //@Param_flag);
                    //    end
                    //    else if(@Param_action=1)
                    //    begin
                    //        delete water_alarm
                    //        where [email protected]_monitoring_mn
                    //    end
                    //    else
                    //    begin
                    //        Update water_alarm set [email protected]_monitoring_mn,
                    //        [email protected]_factor_id ,
                    //        [email protected]_datatime ,
                    //        [email protected]_value ,
                    //        [email protected]_flag
                    //        where [email protected]_monitoring_mn
                    //    end
                    //end

        }
时间: 2024-11-07 21:50:47

Sql Server根据表名生成查询的存储过程(查询条件可选)的相关文章

Sql Server 删除表名包含指定字符串的表

删除包含指定字符串的表 create procedure sys_DeleteTableByTableName(@bianliang varchar(100))asbegindeclare @biao varchar(100),@sql varchar(1000)set @sql='%'[email protected]+'%'declare c cursor for select name from sysobjects where type='u' and name like @sqlset

SQL SERVER 修改表名

exec sp_rename 'table1', 'table2'

sql server 复制表从一个数据库到另一个数据库

sql server 复制表从一个数据库到另一个数据库 /*不同服务器数据库之间的数据操作*/ --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.数据库名.dbo.表名 --导入示例 select * into 表 f

SQL Server数据库表重置自增主键号(通常是指ID)

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

SQL Server调优系列基础篇(子查询运算总结)

原文:SQL Server调优系列基础篇(子查询运算总结) 前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴趣的童鞋可以点击查看. 本篇我们介绍关于子查询语句的一系列内容,子查询一般是我们形成复杂查询的一些基础性操作,所以关于子查询的应用方式就非常重要. 废话少说,开始本篇的正题. 技术准备 数据库版本为SQL Server2008R2,利用微软

SQL Server 判断表中是否存在某字段

原文:SQL Server 判断表中是否存在某字段 功能:判断表中是否存在某字段,若不存在,则新增该字段 语句: IF NOT EXIST (SELECT 1 FROM [DATABASE].SYS.SYSCOLUMNS WHERE ID=OBJECT_ID([DATABASE].[SCHEMA].[TABLENAME]) AND NAME='COLUMN_NAME') ALTER TABLE [TABLENAME] ADD [COLUMN_NAME] [COLUMN_TYPE] p.s. 之前

sql server 读取表结构

SELECT 表名=case when a.colorder=1 then d.name else '' end, 字段序号=a.colorder, 主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND coli

SQL Server系统表sysobjects介绍与使用

原文:SQL Server系统表sysobjects介绍与使用 关于SQL Server数据库的一切信息都保存在它的系统表格里.我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格.但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器.你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工. 这就让sysobjects表格有了用武之地.虽然我不建议你更新这个表格,但是你当然有权对其进行审查. sysobjects 表 在数据库内创建的每个对象(约

SQL Server 2008 R2如何生成带数据的数据库脚本

1.对想要复制的数据库右键,"任务","生成脚本" 2.下面需要注意的是,默认情况下,只会生成仅架构的脚本,也就是说仅仅有表结构,而没有数据的空壳.所以需要额外的设置. 在设置脚本编写选项,选择"高级" 然后在"要编写脚本的数据类型",选择"架构和数据" 3.运行生成的脚本. 注意修改数据库文件的位置,因为可能脚本中的路径在目标计算机中并不存在. SQL Server 2008 R2如何生成带数据的数据库脚