【发布时间】:2011-06-17 22:46:12
【问题描述】:
我有这个批处理文件,它将所有表的列表输出到一个文件中。我正在寻找将输入此列表并生成删除语句的完整列表以删除所有表的命令?
:: droptables.bat
set SQLVER=100
if NOT EXIST "%PROGRAMFILES%\Microsoft SQL Server\100\Tools\BINN\osql.exe" (
@echo MS SQL Server 2008 not found.
set SQLVER=90
if NOT EXIST "%PROGRAMFILES%\Microsoft SQL Server\90\Tools\BINN\osql.exe" (
@echo MS SQL Server 2005 not found.
set SQLVER=80
if NOT EXIST "%PROGRAMFILES%\Microsoft SQL Server\80\Tools\BINN\osql.exe" (
@echo MS SQL Server is not yet installed.
pause
exit
)
)
)
@echo Your SQL Server version is %SQLVER% (100=2008,90=2005, and 80=2000)
if exist "%PROGRAMFILES%\Microsoft SQL Server\%SQLVER%\Tools\BINN\osql.exe" (
"%PROGRAMFILES%\Microsoft SQL Server\%SQLVER%\Tools\BINN\osql" -E
-d "%PROJECT%PD_FSDB_ECitation" -h-1 -Q "select name from sysobjects where
type='U' order by name;" -o tableList.txt
需要更改上述查询以创建删除语句列表,而不仅仅是表名。 tableList.sql 文件只是一个简单的 drop table 语句列表。
生成queryList.sql后,我想像这样运行它:
osql -E -h-1 -i C:\MyFolder\queryList.txt
我知道有一种方法可以从 SQL 语句生成 SQL 语句列表,但我不记得该怎么做。
【问题讨论】:
标签: sql sql-server sql-server-2005