
1 SQL server2008 导入超大SQL脚本文件(超过10);
2 采用SQLManagement 查询工具不能打开,所以使用osql在doc命令下执行;
3 osql 用法:
4 执行SQL脚本文件。-S:sqlserver服务器名称 -U:数据库登陆账号 -P:数据库登陆密码 -i:sql 脚本文件的路径
5 如果想将运行结果定向到一个文件,添加 –o output_file 参数
output_file 是输出文件及其完整路径。
如想消除输出结果中的编号和提示符号,请向上述命令中添加 -n 选项。例如:
osql -E -i input_file -o output_file -n
6 执行结果可以查看输出文档。
7 osql 执行SQL语句,输入osql-S:sql server服务器名称 -U:数据库登陆账号
然后输入密码,就可以输入SQL语句了(注意大小写)。如下图
8 输入exit退出
打开SQL管理器 ,找到要导出用户表字段信息的那个数据库 ,点击工具上的Sql查询分析器
直接copy下面的Sql语句到查询分析器中,点击F5运行:
SELECT
(case when acolorder=1 then dname else '' end)表名,
acolorder 字段序号,
aname 字段名,
(case when COLUMNPROPERTY( aid,aname,'IsIdentity')=1 then '√'else '' end) 标识,
(case when (SELECT count()
FROM sysobjects
WHERE (name in
(SELECT name
FROM sysindexes
WHERE (id = aid) AND (indid in
(SELECT indid
FROM sysindexkeys
WHERE (id = aid) AND (colid in
(SELECT colid
FROM syscolumns
WHERE (id = aid) AND (name = aname))))))) AND
(xtype = 'PK'))>0 then '√' else '' end) 主键,
bname 类型,
alength 占用字节数,
COLUMNPROPERTY(aid,aname,'PRECISION') as 长度,
isnull(COLUMNPROPERTY(aid,aname,'Scale'),0) as 小数位数,
(case when aisnullable=1 then '√'else '' end) 允许空,
isnull(etext,'') 默认值,
isnull(g[value],'') AS 字段说明
FROM syscolumns a left join systypes b
on axtype=bxusertype
inner join sysobjects d
on aid=did and dxtype='U' and dname<>'dtproperties'
left join syscomments e
on acdefault=eid
left join sysproperties g
on aid=gid AND acolid = gsmallid
order by aid,acolorder
这样的话,该数据库中的用户字段信息就出来了,然后可以把结果全选,复制到Excel里面 粘贴。
@echo off
set h=服务器名
set u=登录名
set p=密码
set d=数据库名
echo update a set bz4='456' from yw_kck a where hh='9909994'>mysql
mysql -f -h %h% -u %u% -p%p% %d%<mysql>mysqllog
del mysql
pause
把 use beta 去掉。
create database beta 创建数据库后,要关闭数据源连接,并且要使用新的连接字符串(连接字符串中指定“新的数据库名称”)重新打开数据源连接,这样创建数据表才行。
SQL Server并不包含这个功能,只能靠第三方的代码了。
用这个存储过程可以实现:
CREATE PROCEDURE dboUspOutputData
@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 cname,cxtype from syscolumns c where cid=@objectid order by ccolid
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
使用方法:
exec UspOutputData 你的表名
然后将运行后的结果存成sql,加上用SQL Server生成的数据库脚本就可以了
以上就是关于sql2005如何导入脚本全部的内容,包括:sql2005如何导入脚本、导出mssql数据库中的表、字段和类型为SQL语句、用cmd或者批处理执行mssql语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)