用isqlw来执行*.sql文件
isqlw 实用工具(SQL 查询分析器)使您得以输入 Transact-SQL 语句、系统存储过程和脚本文件。通过设置快捷方式或创建批处理文件,可以启动预配置的 SQL 查询分析器。语法
isqlw
[-?] |
[
[-S server_name[\instance_name]]
[-d database]
[-E] [-U user] [-P password]
[{-i input_file} {-o output_file} [-F {U|A|O}]]
[-f file_list]
[-C configuration_file]
[-D scripts_directory]
[-T template_directory]
]参数-?显示用法信息。-S server_name[\instance_name]:指定要连接到的 Microsoft® SQL Server™ 2000 实例。指定用于连接到该服务器上的 SQL Server 2000 默认实例的 server_name。指定用于连接到该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。如果未指定服务器,isqlw 将连接到本地计算机上的 SQL Server 默认实例。从网络上的远程计算机执行 isqlw 时,此选项是必需的。-d database当启动 isqlw 时,发出一个 USE database 语句。默认值为用户的默认数据库。-E使用信任连接而不请求密码。-U user用户登录 ID。登录 ID 区分大小写。-P password是登录密码。默认设置为 NULL。-i input_file标识包含一批 SQL 语句或存储过程的文件。必须同时指定 -i 和 -o 选项。如果指定 -i 和 -o 选项,将执行输入文件中的查询,并将结果保存到输出文件中。在查询执行过程中不显示用户接口。当执行完成后,进程退出。-o output_file标识接收来自 isqlw 的输出的文件。必须同时指定 –i 和 –o 选项。如果指定 -i 和 -o 选项,将执行输入文件中的查询,并将结果保存到输出文件中。在查询执行过程中不显示用户接口。当执行完成后,进程退出。如果未使用 -F 指定文件格式,则输出文件使用与输入文件相同的类型。-F {U|A|O}是输入文件和输出文件的格式。值包括 Unicode、ANSI 和 OEM。如果未指定 -F,则使用自动模式(如果文件标为 Unicode 格式,则以 Unicode 格式打开;否则,以 ANSI 格式打开文件)。-f file_list将列出的文件装载到 SQL 查询分析器中。使用 -f 选项,可以装载一个或多个文件(文件名以单个空格分开)。如果指定了多个文件,则以相同的连接上下文将这些文件打开。文件名可以包含该文件所驻留的目录路径。可以使用通配符,如 C:\Test\*.sql 中的星号 (*)。-C configuration_file使用配置文件中指定的设置。其它在命令提示下显式指定的参数将重写相应配置文件中的设置。-D scripts_directory重写在注册表中或在用 –C 指定的配置文件中指定的默认存储脚本目录。该值不保留在注册表或配置文件中。若要在 SQL 查询分析器中查看该选项的当前值,请单击"工具"菜单,然后单击"选项"命令。-T template_directory重写在注册表中或在用 –C 指定的配置文件中指定的默认模板目录。该值不保留在注册表或配置文件中。若要在 SQL 查询分析器中查看该选项的当前值,请单击"工具"菜单,然后单击"选项"命令。
注释
有用户界面或没有用户界面时都可使用 isqlw 实用工具。若要在没有用户界面的情况下运行 isqlw,请指定有效登录信息(具有信任连接或有效登录 ID 及密码的 SQL Server 2000 实例)和输入及输出文件。isqlw 将执行输入文件的内容,并将结果保存到输出文件中。
例:
isqlw -d pubs -E -f "c:\Program Files\Microsoft SQL Server\MSSQL\Install\instpubs.sql" "c:\Program Files\Microsoft SQL Server\MSSQL\Install\instcat.sql"
isqlw 实用工具(SQL 查询分析器)使您得以输入 Transact-SQL 语句、系统存储过程和脚本文件。通过设置快捷方式或创建批处理文件,可以启动预配置的 SQL 查询分析器。语法
isqlw
[-?] |
[
[-S server_name[\instance_name]]
[-d database]
[-E] [-U user] [-P password]
[{-i input_file} {-o output_file} [-F {U|A|O}]]
[-f file_list]
[-C configuration_file]
[-D scripts_directory]
[-T template_directory]
]参数-?显示用法信息。-S server_name[\instance_name]:指定要连接到的 Microsoft® SQL Server™ 2000 实例。指定用于连接到该服务器上的 SQL Server 2000 默认实例的 server_name。指定用于连接到该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name。如果未指定服务器,isqlw 将连接到本地计算机上的 SQL Server 默认实例。从网络上的远程计算机执行 isqlw 时,此选项是必需的。-d database当启动 isqlw 时,发出一个 USE database 语句。默认值为用户的默认数据库。-E使用信任连接而不请求密码。-U user用户登录 ID。登录 ID 区分大小写。-P password是登录密码。默认设置为 NULL。-i input_file标识包含一批 SQL 语句或存储过程的文件。必须同时指定 -i 和 -o 选项。如果指定 -i 和 -o 选项,将执行输入文件中的查询,并将结果保存到输出文件中。在查询执行过程中不显示用户接口。当执行完成后,进程退出。-o output_file标识接收来自 isqlw 的输出的文件。必须同时指定 –i 和 –o 选项。如果指定 -i 和 -o 选项,将执行输入文件中的查询,并将结果保存到输出文件中。在查询执行过程中不显示用户接口。当执行完成后,进程退出。如果未使用 -F 指定文件格式,则输出文件使用与输入文件相同的类型。-F {U|A|O}是输入文件和输出文件的格式。值包括 Unicode、ANSI 和 OEM。如果未指定 -F,则使用自动模式(如果文件标为 Unicode 格式,则以 Unicode 格式打开;否则,以 ANSI 格式打开文件)。-f file_list将列出的文件装载到 SQL 查询分析器中。使用 -f 选项,可以装载一个或多个文件(文件名以单个空格分开)。如果指定了多个文件,则以相同的连接上下文将这些文件打开。文件名可以包含该文件所驻留的目录路径。可以使用通配符,如 C:\Test\*.sql 中的星号 (*)。-C configuration_file使用配置文件中指定的设置。其它在命令提示下显式指定的参数将重写相应配置文件中的设置。-D scripts_directory重写在注册表中或在用 –C 指定的配置文件中指定的默认存储脚本目录。该值不保留在注册表或配置文件中。若要在 SQL 查询分析器中查看该选项的当前值,请单击"工具"菜单,然后单击"选项"命令。-T template_directory重写在注册表中或在用 –C 指定的配置文件中指定的默认模板目录。该值不保留在注册表或配置文件中。若要在 SQL 查询分析器中查看该选项的当前值,请单击"工具"菜单,然后单击"选项"命令。
注释
有用户界面或没有用户界面时都可使用 isqlw 实用工具。若要在没有用户界面的情况下运行 isqlw,请指定有效登录信息(具有信任连接或有效登录 ID 及密码的 SQL Server 2000 实例)和输入及输出文件。isqlw 将执行输入文件的内容,并将结果保存到输出文件中。
例:
isqlw -d pubs -E -f "c:\Program Files\Microsoft SQL Server\MSSQL\Install\instpubs.sql" "c:\Program Files\Microsoft SQL Server\MSSQL\Install\instcat.sql"
zhuzhichao
炎龙骑士注册日期: 2001 Oct
来自:
发帖数量: 593 lsh66:在查询分析器以“文本显示结果”方法执行
exec UspOutputData 你的表名
得到导出数据的语句,但image,text,ntext,sql_variant 列不出现在语句,以后改进。 存储过程UspOutputData如下: CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int set nocount on
set @objectId=object_id(@tablename) if @objectId is null -- 判斷對象是否存在
begin
print 'The object not exists'
return
end
set @objectname=rtrim(object_name(@objectId)) if @objectname is null or charindex(@objectname,@tablename)=0 --此判断不严密
begin
print 'object not in current database'
return
end if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判斷對象是否是table
begin
print 'The object is not table'
return
end select @ident=status&0x80 from syscolumns where id=@objectid and status&0x80=0x80 if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' ON' declare syscolumns_cursor cursor
for select c.name,c.xtype from syscolumns c
where c.id=@objectid
order by c.colid
open syscolumns_cursor
set @column=''
set @columndata=''
fetch next from syscolumns_cursor into @name,@xtype
while @@fetch_status < >-1
begin
if @@fetch_status < >-2
begin
if @xtype not in(189,34,35,99,98) --timestamp不需处理,image,text,ntext,sql_variant 暂时不处理
begin
set @column=@column+case when len(@column)=0 then'' else ','end+@name
set @columndata=@columndata+case when len(@columndata)=0 then '' else ','','','end
+case when @xtype in(167,175) then '''''''''+'+@name+'+''''''''' --varchar,char
when @xtype in(231,239) then '''N''''''+'+@name+'+''''''''' --nvarchar,nchar
when @xtype=61 then '''''''''+convert(char(23),'+@name+',121)+''''''''' --datetime
when @xtype=58 then '''''''''+convert(char(16),'+@name+',120)+''''''''' --smalldatetime
when @xtype=36 then '''''''''+convert(char(36),'+@name+')+''''''''' --uniqueidentifier
else @name end
end
end
fetch next from syscolumns_cursor into @name,@xtype
end
close syscolumns_cursor
deallocate syscolumns_cursor set @sql='set nocount on select ''insert '+@tablename+'('+@column+') values(''as ''--'','+@columndata+','')'' from '+@tablename print '--'+@sql
exec(@sql) if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' OFF' GO