sp_dboption怎么使用啊?

95000100 2003-11-19 07:05:18
我想限制对ZWY库的大批量导入,
use zwy
go
exec sp_dboption 'zwy','select into/bulkcopy','false'
可以通过,
但是用此命令一试,zwytemp数据库仍然可以建立
sele * into zwytemp from temp
为什么????????
...全文
1239 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinglccs 2003-11-22
  • 打赏
  • 举报
回复
sp_dboption
显示或更改数据库选项。不能在 master 或 tempdb 数据库上使用 sp_dboption。向后兼容性支持 sp_dboption。使用 ALTER DATABASE 设置数据库选项。

语法
sp_dboption [ [ @dbname = ] 'database' ]
[ , [ @optname = ] 'option_name' ]
[ , [ @optvalue = ] 'value' ]

参数
[@dbname =] 'database'

在其中设置指定选项的数据库的名称。database 的数据类型为 sysname,默认值为 NULL。

[@optname =] 'option_name'

要设置的选项的名称。没有必要输入完整的选项名称。Microsoft® SQL Server™ 可识别名称中任何独有的部分。如果选项名称包含空格或者关键字,请将选项名称用引号引起来。如果省略此参数,sp_dboption 将列出处于打开状态的选项。option_name 的数据类型为 varchar(35),默认值为 NULL。

[@value =] 'value'

option_name 的新设置。如果省略此参数,sp_dboption 将返回当前设置。value 可以是 true、false、on 或 off。value 的数据类型为 varchar(10),默认值为 NULL。

返回代码值
0(成功)或 1(失败)

结果集
如果没有提供参数,则结果集如下。

列名 数据类型 描述
Settable database options nvarchar(35) 所有可设置的数据库选项。


如果 database 是唯一的参数,则结果集如下。

列名 数据类型 描述
The following
options are set: nvarchar(35) 为数据库设置的选项。


如果提供 option_name,则结果集如下。

列名 数据类型 描述
OptionName nvarchar(35) 选项的名称。
CurrentSetting char(3) 选项是处于打开状态还是处于关闭状态。


如果提供 value,sp_dboption 将不返回结果集。

注释
下面是由 sp_dboption 设置的选项。有关每个选项的更多信息,请参见设置数据库选项。

选项 描述
auto create statistics 当为 true 时,优化查询所需的任何缺少的统计将在优化过程中自动生成。有关更多信息,请参见 CREATE STATISTICS。
auto update statistics 当为 true 时,优化查询所需的任何过期的统计将在优化过程中自动生成。有关更多信息,请参见 UPDATE STATISTICS。
autoclose 当为 true 时,数据库完全关闭,其资源在最后一个用户注销后释放。
autoshrink 当为 true 时,数据库文件将成为自动周期性收缩的候选文件。
ANSI null default 当为 true 时,CREATE TABLE 遵循 SQL-92 规则以决定列是否允许为空值。
ANSI nulls 当为 true 时,所有对空值的比较都取值 UNKNOWN。当为 false 时,如果都为 NULL,则对空值的非 UNICODE 值比较取值 TRUE。
ANSI warnings 当为 true 时,如果出现诸如"被零除"情况,则发出错误或警告消息。
arithabort 当为 true 时,溢出或被零除错误将导致查询或批处理终止。如果错误发生在事务内,则回滚事务。当为 false 时,将显示警告消息,但是继续执行查询、批处理或事务,就像没有出错一样。
concat null yields null 当为 true 时,如果串联操作中任何一个操作数为 NULL,则结果为 NULL。
cursor close on commit 当为 true 时,将关闭提交或回滚事务时所打开的任何游标。当为 false 时,提交事务时这些游标仍处于打开状态。当为 false 时,回滚事务时将关闭所有游标(除定义为 INSENSITIVE 或 STATIC 的游标)。
dbo use only 当为 true 时,只有数据库所有者可以使用数据库。
default to local cursor 当为 true 时,游标声明默认为 LOCAL。
merge publish 当为 true 时,可以为合并复制发布数据库。
numeric roundabort 当为 true 时,如果表达式中出现精度损失则生成错误。当为 false 时,精度损失不生成错误信息,并且将结果四舍五入为存储结果的列或变量的精度。
offline 当为 true 时,数据库将处于脱机状态。
published 当为 true 时,可以发布数据库用于复制目的。
quoted identifier 当为 true 时,可以将分隔标识符包含在双引号中。
read only 当为 true 时,用户仅能读取数据库中的数据而无法对其进行修改。若要为 read only 选项指定新的 value,则数据库不能处于使用状态。但 master 数据库例外,并且当正在设置 read only 选项时,只有系统管理员可以使用 master。
recursive triggers 当为 true 时,启用触发器递归调用。当为 false 时,只防止直接递归。若要禁用间接递归,请使用 sp_configure 将 nested triggers 服务器选项设置为 0。
select into/bulkcopy 当为 true 时,允许使用 SELECT INTO 语句和快速大容量复制。
single user 当为 true 时,每次只能有一个用户访问数据库。
subscribed 当为 true 时,可以为发布目的而订阅。
torn page detection 当为 true 时,可以检测残缺页。
trunc. log on chkpt. 当为 true 时,如果数据库处于日志截断模式,则检查点将截断日志中非活动的部分。只能为 master 数据库设置此选项。


通过在 model 数据库上执行 sp_dboption,数据库所有者或系统管理员可以设置或关闭所有新建数据库的特定数据库选项。

执行 sp_dboption 后,将在为之更改选项的数据库中执行检查点。这将使更改立即生效。

sp_dboption 更改数据库设置。使用 sp_configure 更改服务器级别设置,使用 SET 语句更改仅影响当前会话的设置。

权限
显示可能的数据库选项列表、数据库中当前设置的选项列表以及选项在数据库中的当前值(使用 sp_dboption 和 0、1 或 2 个参数)的执行权限默认授予所有用户。

更改选项(使用 sp_dboption 及全部参数)的执行权限默认授予 sysadmin、dbcreator 固定服务器角色成员以及 db_owner 固定数据库角色成员。这些权限是不可传递的。

示例
A. 将数据库设置为只读
下面的示例将 pubs 数据库设置为只读。

USE master
EXEC sp_dboption 'pubs', 'read only', 'TRUE'

下面是结果集:

CHECKPOINTing database that was changed.

B. 关闭选项
下面的示例将 pubs 数据库重新设置为可写。

USE master
EXEC sp_dboption 'pubs', 'read only', 'FALSE'

下面是结果集:

CHECKPOINTing database that was changed.

C. 使数据库脱机
下面的示例使数据库 sales 在没有用户访问时进入脱机状态。

USE master
EXEC sp_dboption 'sales', 'offline', 'TRUE'

下面是结果集:

CHECKPOINTing database that was changed.


请参见

ALTER DATABASE

SET

sp_configure

系统存储过程

pengdali 2003-11-21
  • 打赏
  • 举报
回复
exec sp_dboption 'zwy','select into','false'

重起
95000100 2003-11-21
  • 打赏
  • 举报
回复
我的语法及语句都没有问题,因为使用时没报错,但就是不行
youngby 2003-11-19
  • 打赏
  • 举报
回复
使用系统存贮过程sp_dboption来设置数据库选项,它的语法规则如下:

sp_dboption [dbname,optname,{true┃false}]

  其中:

dbname为用户所需设置选项的数据库名称。如果执行带参数的sp_dboption,则当前使用的库必须是master。不带参数便显示数据库选项清单。但是,用户不能设置master库的数据库选项。

optname为用户所要设置或关闭的选项名称。SQL Server能识别选项名的任何唯一的字符串。当其名称为关键字或含嵌入空格或标点符号时,用引号括起来。

{true┃false}——设置该选项时为true,关闭该选项时为false。

  使用sp_dboption,能设置以下数据库选项:

abort tran on log is full

allow null by default

dbo use only

ddl in tran

disable free space acctg

no chkpt on recovery

read only

select into/bulkcopy

single user

trunc log on chkpt

  查看数据库的选项设置情况,使用sp_helpdb存贮过程。

数据库选项的用途

  (1)Selectinto/bulkcopy

  使用bcp或批拷贝程序接口将数据高速拷贝到一张没有索引和触发器的表,Writetext或者Select into生成永久表,则此选项必须设置为true。因此,当你使用bcp实用程序往用户数据库加载数据时,或者调用dbwretetext函数把一幅图片插入到某张表的image字段,或者通过Select into命令形成结果表时,别忘了把该选项置为true。SQL Server为了快速执行上述操作,减少记录修改操作的日志。但是,这种不记日志的操作会使事务日志与数据库中数据不同步。这种事务日志对于系统失败后的恢复就没有用处。系统禁止在这种情况下,dump transation到转储设备。因此,这些不记日志记录的操作完成后,将Select into/bulkcopy选项关闭后,执行dump database。

  由Select into或批拷贝对数据库产生未被日志记录的修改后,执行dump transaction命令时,显示错误信息,并指导用户改用dump database(而Wrrietext命令没有这种保护)。

  由于临时库tempdb从不恢复,所以使用Select into产生临时表时不必将Selectinto/bulkcopy选项打开。对于有索引的表进行bcp时,一般进行慢速批拷贝并且记入日志,所以此时也不必将Select into/bulkcopy设置为true。

  (2)trunc log on chkpt

  该选项表示每当checkpoint检查进程执行时(通常每分钟12次以上),事务日志被载截,即将已提交的事务日志删除。但是,该选项设置成true以后,人工执行checkpoint操作时都不载截事务日志。在开发数据库应用时,防止日志增长太快.可以将该选项设置成true,所以它很有用。

  (3)abert tran on log full

  该选项决定当指定数据库日志段最后机会阀值被超越时,正在运行的事务的处理办法。缺省值为false,也就是说事务被暂停挂起,直到空间空余出来再恢复。本选项设置为true时,在日志存储空间空余出来之前,所有用户的需要写事务日志的查询将被去掉。

  (4)allow nulls by default

  该选项置为true,将列的缺省状态从not null改为null,这与ANSI标准一致。T-SQL中列的缺省状态为not null,即不允许列为空值。但用户可在列定义时指定该列为null状态。allow nulls by default true与缺省状态相反。

  (5)dbo use only

  该选项设置为true时,只有数据库拥有者才能使用该数据库。

  (6)ddl in tran

  该选项设置为true时,用户在事务中可以使用某些数据库定义语言的命令,例如:Create table,grant和alter table命令。·只有ddl in tran选项设置为true时,下述命令才可在用户自定义事务内部使用:

alter table create table drop rule create default create trgger drop table create index create view drop trigger create procedure ceate default drop view create rule drop index grant create Schera drop procedure revoke

  下述命令在任何情形下都不能在用户自定义事务内部使用。

alter database load database truncate table create database load transation update statistics disk init recorfigure drop database select into

  另外,系统过程sp_helpdb,sp_helpdevice,sp_helpindex,sp_helpjoins,sp_helpserver和sp_spaceused,由于在执行时产生临时表,也不能在用户自定义事务中使用。再者,用户自定义事务中不能使用修改master数据库的系统过程。

  (7)no free space acctg

  该选项抑制剩余空间计帐及非日志段阀值活动的执行,由于不再计算这些字段的剩余空间,所以将加速恢复时间。关于该选项,在阀值管理部分,已有详细介绍。

  (8)no chkpt on recovery

  当保持最新的数据库备份时,此项设置为true。此时,存在一个基本库和一个辅助库。首先,基本库转储到辅助库中。然后,基本库的事务日志间断地转储并装载到辅助库中

  若此选项设置为缺省值false,重新启动SQL Server时,恢复数据库后将向数据库增加一条检查点记录。检查点记录确保机制不会不必要地重新运行,改变顺序号,并导致随后从基本库装载事务日志的失败。

  将辅助库的此项设置打开,恢复过程将不产生检查点,这样从基本库转储的事务日志可以被装载至辅助库。

  (9)read only

  该选项使得用户可以从数据库中检索数据,但不能修改数据。

  (10)single user

  该选项设置为true时,每次只能有一个用户访问该数据库。
youngby 2003-11-19
  • 打赏
  • 举报
回复
use master
go
exec sp_dboption 'zwy','select into/bulkcopy','false'
go
select * into zwy..zwytemp from temp
go
95000100 2003-11-19
  • 打赏
  • 举报
回复
不行啊,我试了,还是可以建立新表ZWytemp的啊,我不想让它建,怎么办啊
youngby 2003-11-19
  • 打赏
  • 举报
回复
use zwy
go
exec sp_dboption 'zwy','select into/bulkcopy','false'
go
select * into zwy..zwytemp from temp
go
youngby 2003-11-19
  • 打赏
  • 举报
回复
语法
sp_dboption [ [ @dbname = ] 'database' ]
[ , [ @optname = ] 'option_name' ]
[ , [ @optvalue = ] 'value' ]

参数
[@dbname =] 'database'

在其中设置指定选项的数据库的名称。database 的数据类型为 sysname,默认值为 NULL。

[@optname =] 'option_name'

要设置的选项的名称。没有必要输入完整的选项名称。Microsoft® SQL Server™ 可识别名称中任何独有的部分。如果选项名称包含空格或者关键字,请将选项名称用引号引起来。如果省略此参数,sp_dboption 将列出处于打开状态的选项。option_name 的数据类型为 varchar(35),默认值为 NULL。

[@optvalue =] 'value'

option_name 的新设置。如果省略此参数,sp_dboption 将返回当前设置。value 可以是 true、false、on 或 off。value 的数据类型为 varchar(10),默认值为 NULL。




select into/bulkcopy 当为 true 时,允许使用 SELECT INTO 语句和快速大容量复制
95000100 2003-11-19
  • 打赏
  • 举报
回复
拜托各位了,在线等

34,681

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧