SQL脚本修改后执行?

Mr.Huang…… 2010-10-14 12:35:12
我想写一个脚本,执行的时候先调出数据库中原有存储过程,替换修改的那一部分,然后执行。
例:create proc abc
as
select xm,xb from name

我想把过程中的xm替换为xm as 姓名,然后执行脚本

因为用户比较多,有些存储过程是针对单个用户进行调整的,如果统一执行新的脚本怕影响用户的特殊调整,能修改他原有存储过程的一部分,然后执行就方便多了?


...全文
67 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
华夏小卒 2010-10-14
  • 打赏
  • 举报
回复
 
/*******************************************************************
修改远程服务器的存储过程 DoAlterProc

使用方法:
1、本地有表 dbase 存放远程服务器的信息

-- 查看记录
select * from 数据库名.dbo.dbase

dbip dbname dbuser dbpwd lx bz
---------------------------- -------- ------ --------- ----------- ------------------------------
192.168.0.1\实例名 数据库名 SA 1 1 服务器
192.168.0.2 数据库名 SA 1 2 同事服务器


-- 插入记录

use 数据库名
insert dbase
select '192.168.0.2', -- 服务器+实例名
'数据库名', -- 数据库名
'sa', -- 用户名
'1', -- 用户密码
2, -- 类型(1:服务器,2:同事,可以进一步具体化)
'' -- 备注


-- 更新记录

2、D盘下有一个TXT 文档,存放最新的存储过程信息

测试用例:

EXEC DoAlterProc 1,'PSZY'

*******************************************************************/

CREATE PROC [dbo].[DoAlterProc]
@lx int -- 服务器类型

AS

-- 修改
DECLARE @cmd nvarchar(MAX);DECLARE @TEXT NVARCHAR;
SET @cmd = '';

SELECT
@cmd = @cmd + 'EXEC xp_cmdshell N''sqlcmd -S '+dbip+' -i"D:\aa.txt" -d '+dbname+' -U '+dbuser+case when isnull(dbpwd,'')='' then '' else ' -P ' end +dbpwd+''';'+CHAR(13)+CHAR(10)
FROM dbase
where lx=@lx;

print @cmd
EXEC(@cmd)

go
Mr.Huang…… 2010-10-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxf163 的回复:]
要是前台程序调用,你可以不用字段名来获取,根据字段顺序获取。
getParameter(1)
getParameter(2)这样?
[/Quote]

能举个例吗?
Mr.Huang…… 2010-10-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wxf163 的回复:]
啥意思?


SQL code
create proc abc
as
select xm as 姓名,xb from name
有何不可?
[/Quote]

不想手工把每个用户的存储过程调出来修改,整个自动调用,修改,执行的
Mr.Huang…… 2010-10-14
  • 打赏
  • 举报
回复
就想整个通用的,方便
即使不行,可以探讨下
SQLCenter 2010-10-14
  • 打赏
  • 举报
回复
alter proc abc
...
SQL2088 2010-10-14
  • 打赏
  • 举报
回复
有的时候太通用了,也有不便之处
王向飞 2010-10-14
  • 打赏
  • 举报
回复
要是前台程序调用,你可以不用字段名来获取,根据字段顺序获取。
getParameter(1)
getParameter(2)这样?
王向飞 2010-10-14
  • 打赏
  • 举报
回复
啥意思?

create proc abc
as
select xm as 姓名,xb from name
有何不可?
一、简介 1.1前言 1、由于最近工作一直用Oracle,故对Oracle数据库研究为对象。 2、根据工作业务需求实际情况进行功能研发。为什么要开发呢?因为在数据库升级或者迁移的时候,为了保证不同环境不同数据库数据保持同步,故数据库SQL脚本非常作用。比如:数据库主脚本,副脚本,增量脚本。 3、 什么是主脚本、副脚本、增量脚本呢? 3.1、主脚本指数据库表或存储过程,视图脚本,序列等脚本。 3.2、副脚本指必须执行脚本之后才执行脚本。换句话说在没执行主键脚本的情况下,副脚本执行之后会回滚事务失败。 3.3、增量脚本指在执行脚本或副脚本之后,根据需求对某个表添加/修改约束(主外键约束,长度约束等),添加/修改字段/添加数据等情况对数据库结构改变处理的一种行为脚本。 1.2作用 1、 快速产出自定义规则需要的SQL脚本。 2、减少人工编写SQL脚本出错率问题,完全通过程序检测SQL准确性。 3、帮助开发人员提高SQL编写效率,减少人工编写SQL开发成本问题。 4、帮助开发人员节约时间,同时避免繁琐不必要编写SQL的工作。 二、实现方式与原理 2.1实现方式 1、实现方式分:正向与逆向实现。什么是正向与逆行呢【是否有鸡还是有蛋,先后道理同等】 2、正向方式:首先把设计好数据库表文档,把所有表的字段属性配置到EXCEL或者CSV格式的文件通过JXL/POI技术去读取文件的字段,再通过其他技术一系列程序处理之后生成所需要的SQL脚本。 3、逆向方式:首先有数据库表,然后通过ORM持久化技术连接数据库再读取表的字段等属性出来,再通过其他技术一系列程序处理之后生成所需要的SQL脚本。 2.2原理 对数据库软件内置核心表或视图查询出来存储用户行为表结构所有属性信息,对此属性结构信息进行分析与组装所需要SQL脚本
通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用的sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log表 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql执行计划分析-explain分析-执行计划结果说明4、慢sql执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列表说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace表的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧