怎么批量执行某个文件夹中的SQL脚本

weisai 2009-04-14 09:59:20
比如文件夹中放有大量新建存储过程的SQL脚步,如果一个一个执行,效率太低。
有没有命令或工具可以批量执行这些脚本,我不要把这些脚本合成一个大文件,因为它们的编码不一样,合并后会出现乱码。
如果可以解决不同编码合并问题也可以。
谢谢。
...全文
1112 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
weisai 2009-04-15
  • 打赏
  • 举报
回复
已经找到工具,分享一下
http://www.cnblogs.com/neilvension/archive/2008/04/16/1156679.html
Rotel-刘志东 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jinjazz 的回复:]
做个bat文件就可以了
[/Quote]
同意!
appleller 2009-04-14
  • 打赏
  • 举报
回复
bat应该是不错的选择

脚本执行有先后顺序吗?

dj3688 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 HEROWANG 的回复:]
引用 2 楼 jinjazz 的回复:
做个bat文件就可以了

赞同
[/Quote]

up
Teng_s2000 2009-04-14
  • 打赏
  • 举报
回复
存为*.sql,然后使用osql进行执行
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jinjazz 的回复:]
做个bat文件就可以了
[/Quote]
赞同
lzfrab 2009-04-14
  • 打赏
  • 举报
回复
关注
jinjazz 2009-04-14
  • 打赏
  • 举报
回复
做个bat文件就可以了
liangCK 2009-04-14
  • 打赏
  • 举报
回复
CREATE TABLE #T(filename nvarchar(1024));

INSERT #T EXEC xp_cmdshell N'dir C:\T_SQL_Script /b';

DELETE #T WHERE filename IS NULL;

DECLARE @FILENAME NVARCHAR(1024);

DECLARE cur CURSOR FOR
SELECT filename FROM #T;

OPEN cur;

DECLARE @sql NVARCHAR(1000);
FETCH NEXT FROM cur INTO @FILENAME;

WHILE @@FETCH_STATUS=0
BEGIN
SET @sql=N'sqlcmd -E -SinstanceName -i'+@FILENAME;
EXEC xp_cmdshell @sql;
FETCH NEXT FROM cur INTO @FILENAME;
END
CLOSE cur;
DEALLOCATE cur;
fcuandy 2009-04-14
  • 打赏
  • 举报
回复
本来就支持sql2000的。

老贴子。

http://topic.csdn.net/u/20071102/16/8e2cb842-6823-4aea-b296-ab1566423f27.html
liangCK 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 weisai 的回复:]
引用 1 楼 liangCK 的回复:
SQL codeCREATETABLE#T(filenamenvarchar(1024));INSERT#TEXECxp_cmdshell N'dir C:\T_SQL_Script /b';DELETE#TWHEREfilenameISNULL;DECLARE@FILENAMENVARCHAR(1024);DECLAREcurCURSORFORSELECTfilenameFROM#T;OPENcur;DECLARE@sqlNVARCHAR(1000);FETCHNEXTFROMcurINTO@FILENAME;WHILE@@FETCH_STATUS=0BEGINSET@sql=N'sqlcmd -E -SinstanceName -i'+@FILENAME;EXECxp_cmdshell@sql;FETCHNEXTFROMcurI…
[/Quote]

2000的话,将sqlcmd改为osql
weisai 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liangCK 的回复:]
SQL codeCREATETABLE#T(filenamenvarchar(1024));INSERT#TEXECxp_cmdshell N'dir C:\T_SQL_Script /b';DELETE#TWHEREfilenameISNULL;DECLARE@FILENAMENVARCHAR(1024);DECLAREcurCURSORFORSELECTfilenameFROM#T;OPENcur;DECLARE@sqlNVARCHAR(1000);FETCHNEXTFROMcurINTO@FILENAME;WHILE@@FETCH_STATUS=0BEGINSET@sql=N'sqlcmd -E -SinstanceName -i'+@FILENAME;EXECxp_cmdshell@sql;FETCHNEXTFROMcurINTO@FILENAME;ENDCLOSEcur;DE…
[/Quote]

这个SQL 2005 才能使用?SQl2000可以用吗
weisai 2009-04-14
  • 打赏
  • 举报
回复
Bat 文件是否可以快速自动生成?
因为这个我每个星期都要做,而且有时间限定(1分钟内)。
所以我想找个工具,或者自己写一个工具,每次只要指定路径就可以在几秒钟内完成。

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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