在sql
server
management
studio里
选中数据库,右击--任务--生成脚本。
在弹出窗口中,选择下一步,
选中你要导出的数据,并勾选下面的复选框,
下一步,编写触发器脚本
设为true,
数据脚本设为true,
ansi填充选
false,
下一步,
选择你要保存到文件,,完成即可
② 怎么在sql server中执行脚本
1. 启动SQL Server Management Studio;
点击【开始】->【所有程序】->【Microsoft SQL Server 2008 R2】->【SQL Server Management Studio】,
服务器名称:服务器的名称或者IP地址,
登录名和密码:通常都为sa;
点击【连接】后登录SQL Server Management Studio;
2. 点击【文件】->【打开】-->【文件(F)…】,
选择你要打开的文件,如【Optime.Sql】,打开即可,
3. 选择相应的数据库,如gerp,
点击即可。
③ sql server 怎么捕捉sql语句
如果在Transact-SQL中发生了错误,一般有两种捕捉错误的方法,一种是在客户端代码(如c#、delphi等)中使用类似try...catch的语句进行捕捉;另外一种就是在Transact-SQL中利用Transact-SQL本身提供的错误捕捉机制进行捕捉。如果是因为Transact-SQL语句的执行而产生的错误,如键值冲突,使用第一种和第二种方法都可以捕捉,但是如果是逻辑错误,使用客户端代码进行捕捉就不太方便。因此,本文就如何使用Transact-SQL进行错误捕捉进行了讨论。
非致命错误(non-fatal error)的捕捉
通过执行Transact-SQL而产生的错误可分为两种:致命错误(fatal error)和非致命错误(non-fatal error)。在Transact-SQL中只可以捕捉非致命错误(如键值冲突),而无法捕捉致命错误(如语法错误)。在Transact-SQL中可以通过系统变量@@ERROR判断最近执行的一条语句是否成功执行。如果发生了错误,@@Error的值大于0,否则值为0。下面举一个例子说明@@ERROR的使用。
假设有一个表table1,在这个表中有两个字段f1,f2。其中f1是主键。
INSERTINTOtable1VALUES(1,'aa')INSERTINTOtable1VALUES(1,'bb')--这条语句将产生一个错误IF@@ERROR0PRINT'键值冲突'当执行第二条语句时发生键值冲突错误,@@ERROR被赋为错误号2627,因此输出结果显示'键值冲突'。使用@@ERROR系统变量时需要注意,@@ERROR只记录最近一次执行的Transact-SQL语句所发生的错误,如果最近一次执行的Transact-SQL没有发生错误,@@ERROR的值为0。因此,只能在被捕捉的那条Transact-SQL语句后使用@@ERROR。
在SQL Server中,不仅可以捕捉系统提供的错误,还可以自定义错误。有两种方法可以定义错误信息。
1. 使用sp_addmessage系统存储过程添加错误信息,然后使用RAISERROR抛出错误。
sp_addmessage将错误号,错误级别、错误描述等信息添加到系统表中,然后使用RAISERROR根据相应的错误号抛出错误信息。用户自定义的信息应该从50001开始。EXECsp_addmessage@msgnum=50001,
@severity=16,@msgtext='sql encounter an error(%s).',@lang='us_english'EXECsp_addmessage@msgnum=50001,
@severity=16,@msgtext='sql遇到了一个错误(%1!).'如果使用的SQL Server版本是非英语版本,在添加本地错误信息时必须首先添加英文的错误信息。错误描述可以象c语言中的printf的格式字符串一样使用参数,如%s、%d。但要注意的是在英文版的错误信息中要使用%s、%d等形式,而在本地化的错误信息中要使用%1!、%2!等形式,在每个%?(1 <= ? <= n)后需要加一个!,而且%?的数目必须和英文版的错误信息的参数一致。
在未插入本地化错误信息时,RAISERROR将使用英文版的错误信息。当插入本地化错误信息时,RAISERROR使用本地化的错误信息。
RAISERROR(50001,16,1,'测试')
输出的结果:
服务器: 消息50001
,级别16
,状态1
,行1sql遇到了一个错误(测试).
其中'测试'字符串通过%1传入本地化的错误描述字符串中。
2. 直接使用RAISERROR将错误抛出。
使用第一种方法虽然使Transact-SQL语句看上去更整洁(这种方法类似于在编程语言中使用常量定义错误信息,然后在不同的地方通过错误编号引用这些错误信息。),但是这样做却使错误信息和数据库的耦合度增加,因为如果将这些带有RAISERROR的Transact-SQL放到别的SQL Server数据库上执行,由于在其它的数据库中还未添加错误信息,因此会产生RAISERROR调用错误,除非使用sp_addmessage将所需的错误信息再加入到其它的数据库中。
基于上述原因,RAISERROR不仅可以根据错误代码抛出错误信息,也可以直接通过错误描述格式字符串抛出错误信息。
④ 如何使用SQL数据库的查询分析器来执行SQL语句或SQL脚本文件
1、执行SQL语句:在1处输入语句,点击2运行
2、执行SQL脚本文件:点击3选择.SQL脚本文件,加载脚本,点击2运行
⑤ 怎么使用别人的SQL脚本
用PL/SQL在oracle下执行多个SQL脚本的方法:
PL/SQL developer----->File------>New---->command window
然后在弹出的窗口里依次执行:SQL> @f:\abc\a.sql;SQL> @f:\abc\b.sql;SQL> @f:\abc\c.sql;
SQL*Plus 中执行多个*.sql脚本文件的方法:
1、在SQL*Plus中执行单个sql脚本文件: SQL>@c:\aaa.sql ;
2、在SQL*Plus中执行多个sql脚本文件: 比如你要执行得2个sql脚本 a.sql 和 b.sql 现在你重新写一个脚本 c.sql 其中得内容如下 @@a.sql @@b.sql 然后把c.sql放在a.sql和 b.sql 得同一个目录中即可,然后在sqlplus下执行:SQL>@c.sql 就可以了。
⑥ 用批处理执行SQL文件的脚本应该怎么写
步骤:(1) 创建一个批处理文件:打开记事本,创建数据库连接信息(例如,server name,username,password,databasename等)以及要执行的*.sql脚本名称。具体语法参考下文"osql 实用工具" 。 将文件的扩展名改为.bat 并保存。
示例1:指定待执行sql 文件的相对路径
osql -S admin\admin -U sa -P sa -d TestDB -i c:\test.sql
pause
示例2: 待执行文件与bat文件在同一个目录,指定相对路径
set localdir=%~dp0
osql -S (local) -U sa -P sa -d Test -i %localdir%\test1.sql
osql -S (local) -U sa -P sa -d Test -i %localdir%\test2.sql
osql -S (local) -U sa -P sa -d Test -i %localdir%\test3.sql
pause
(2) 创建需要执行的sql 脚本, test.sql,test2.sql 和test3.sql, 并放在步骤(1)示例1中指定的位置。本例为c:\ 根目录。如果用示例2,将待执行的sql和bat文件放在同一个目录下。
(3) 双击*.bat 文件并查看运行结果。
⑦ 如何对SQL中的所有数据库执行脚本
以sqlserver为例
首先创建一张表
createtabledatabase_info
(databasenamevarchar(50));
然后,将所有数据库名的信息录入到这张表中。这步可参考sqlserver中都有哪些数据库。
然后,执行存储过程:
declare@sqlnvarchar(4000),@iint,@maxdatabase
select@maxdatabase=count(*)fromdatabase_info
set@i=1
while@i<=@maxdatabase
begin
set@sql='update'
select@sql=sql+datebase_namefromdatabase_infowhereid=@i
select@sql=sql+'.master.dbo.tbl1settbl1.aaa=tbl2.bbbfrom'
select@sql=sql+datebase_namefromdatabase_infowhereid=@i
eselect@sql=sql+'.master.dbo.tbl2wheretbl1.ccc=tbl2.ccc'
execsp_executesql@sql
set@i=@i+1
end
注意事项:其中update语句,可根据自己的实际需要进行修改。