sql2005如何导入脚本

sql2005如何导入脚本,第1张

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语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9485275.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存