我想更改存储过程,可以一个文件一个文件的ALTER PROCEDURE ,更新的很麻烦,能不能有种写法,把很多写好的sql文件合并成一个文件,执行一次就好了 。
有时候几十个更新文件要更新好多服务器,累死啦。合并sql存储过程
有时候几十个更新文件要更新好多服务器,累死啦。合并sql存储过程
解决方案 »
- 请大家帮忙。。。存储过程如何循环插入数据
- SSIS包如何调试呢,如果出现错误感觉很难查找错误原因?求各位指教
- 高手赐教 感激不尽 急急急急急急急急急急急急急急急
- 紧急求助:我应不应该为自己申请一份工资以外的开发费用???
- sql trigger有什么应用
- 急!有点难!一个表中,要统计不同种类的个数,但是有重复的(一天打多次卡)
- sql server与哪门语言一起使用好?
- SQL SERVER 数据文件MDF有误,能通过LDF文件恢复吗?
- SQL server2005本地连接为什连接不上数据库?
- SQL Server+Internet?
- like 的子查询统计
- 表A中有6千万数据,怎么吧表A中的数据快速导到表B中,表A,B结构一样,B表多1个字段
go
exec 存储过程名
go
exec 存储过程名
go
exec 存储过程名
go
保存文件就可以
SET @folder='e:\tmp'
DECLARE @err INT,@fso INT,@dic INT,@f INT,@fldExists BIT,@fleExists BIT,@fld INT,@fle INT,@fleList INT,@cnt INT,@eof BIT
DECLARE @t TABLE(id INT IDENTITY(1,1),fName VARCHAR(200))
--创建fso
EXEC @err=sp_OACreate 'Scripting.FileSystemObject',@fso OUTPUT
--检测指定目录是否存在
EXEC @err=sp_OAMethod @fso, 'FolderExists',@fldExists OUTPUT,@folder
IF @fldExists=0
PRINT 'floder does not exist!'
ELSE
BEGIN
--将指定目录给@fld对象
EXEC @err=sp_OAMethod @fso,'GetFolder',@fld OUTPUT,@folder
--获取指定目录的文件集合
EXEC @err=sp_OAGetProperty @fld,'files',@fleList OUTPUT
--获取目录下的文件数,准备循环使用
EXEC @err=sp_OAGetProperty @fleList,'Count',@cnt OUTPUT
--输出
SELECT @err 错误编号,@fldExists 目录存在否,@cnt 文件数
--WHILE @eof!=0
--BEGIN
--检测是否没有文件了
END
然后把N个osql命令存为批处理文件(.bat),一次执行.
...
GO
ALTER PROC
...
GO
这个是高射炮打蚊子,加个GO就能解决的事用批处理做,不用管它,如果你想了解这方面的东西去查一下sqlcmd实用工具和bat文件的原理就知道了。
SET NOCOUNT ON
GO
PRINT '开始执行存储过程'
:On Error exit
:r c:\proc_1.sql
:r c:\proc_2.sql
:r c:\proc_3.sql
PRINT '创建完毕' 里面每个文件,你都可以指定 文件路径,你每次要更新说明文件,就把文件名称写进去就可以了