Sql Server每日一练-SQL Server 7.0 函数及SQL语句相关问题

SQL Server 7.0 函数及SQL语句相关问题

要将一个数据库的所有表格使用批通信程序取出(BCP OUT),有何较快的方法?

假设您的SQLServer 计算机名称为technology1,sa密码空的,如果要将pubs使用批通信程序取出,可以参照下列步骤:

1)在Query Analyzer中执行下列指令:
select 'bcp pubs..'+name+' out'+' d: est '+name+'.txt -c -Stechnology1 -Usa -P' from sysobjects where type = 'U'

2)结果如下


----------------------------------------------------------------------------bcp pubs..authors out d: estauthors.txt -c -Stechnology1 -Usa -P
bcp pubs..publishers out d: estpublishers.txt -c -Stechnology1 -Usa -P
bcp pubs..titles out d: est itles.txt -c -Stechnology1 -Usa -P
bcp pubs..titleauthor out d: est itleauthor.txt -c -Stechnology1 -Usa -P
bcp pubs..stores out d: eststores.txt -c -Stechnology1 -Usa -P
bcp pubs..sales out d: estsales.txt -c -Stechnology1 -Usa -P
bcp pubs..roysched out d: est
oysched.txt -c -Stechnology1 -Usa -P
bcp pubs..discounts out d: estdiscounts.txt -c -Stechnology1 -Usa -P
bcp pubs..jobs out d: estjobs.txt -c -Stechnology1 -Usa -P
bcp pubs..pub_info out d: estpub_info.txt -c -Stechnology1 -Usa -P
bcp pubs..employee out d: estemployee.txt -c -Stechnology1 -Usa -P
(11 row(s) affected)

3)将结果储存成文字文件,文件名为bat,将第一行的------与最后一行(11 row(s) affected)去掉。

4)在DOS下创建d: est的子目录,并执行上述的bat文件,该bat文件将Pubs数据库中的每个表格存放到每个txt文件中

如何得到一个数据库中每个表格的数据数目?

参考下列方法可以获得每个表格的数据数目。

USE pubs -- 可改成您的数据库名称
SET NOCOUNT
ONDECLARE tables_cursor CURSOR
FOR
SELECT name FROM sysobjects WHERE type = 'U'
OPEN tables_cursor
DECLARE @tablename varchar(30), @quote char(1)
SELECT @quote = '"'

FETCH NEXT FROM tables_cursor INTO @tablename
WHILE (@@fetch_status <> -1)
BEGIN
EXEC ("Select " + @quote+"Rows in " + @tablename + " = "+ @quote + ", count(*) from "+ @tablename)
FETCH NEXT FROM tables_cursor INTO @tablename
END
DEALLOCATE tables_cursor
SET NOCOUNT OFF
SQL Server 7.0限制的同时使用的表格和视图数目为多少?

256,SQL Server 6.5为16。

SQL Server 7.0与SQL Server6.5的DMO版本不同,是否可以在SQL Server 7.0执行SQL Server 6.5的存储过程?

可以,请将SQL Server 6.5升级到SP5a,但是无法使用SQL Server 7.0的MMC管理SQL Server 6.5。

为何使用批通信程序导入(BCP IN)SQL Server 7.0 Datetime字段后,millisecond(千分之一秒)会与导入前的值不同?

SQL Server 7.0时间的准确值为百分之三秒,所以millisecond(千分之一秒)的值为0、3或7详细请参考SQL Server 7.0联机书籍datetime and smalldatetime (T-SQL)。

为什么使用SQL Server 7.0的标准差函数STDEV时出现"A domain error occurred"信息?

当数据为浮点数时,会因为浮点数运算不精确而造成此问题。当VAR(x) 为零时,如果计算机是用一个很小的负数表示,那么就无法开平方根运算标准差,就会出现这样的问题。当所有的数值都相等时,就很有可能出现这种错误信息。对于这种情形,建议使用下列方法: select sqrt(abs(var())) from

如何使用SQL Server 7.0查询选取(Query Analyzer)查询Oracle数据?

请参考下列示例:

先使用Oracle客户端软件设定一个网络服务名称,如:"OracleServer'﹝请参考Oracle手册﹞
在SQL Server 7.0中,使用链接的服务器连接到Oracle. 如: sp_addlinkedserver 'TESTLINK', 'Oracle', 'MSDAORA', 'OracleServer', ps. 'TESTLINK'是由您自定义的,'Oracle', 'MSDAORA'是固定的,'OracleServer'是由步骤1确定的。
在SQL Server 7.0中,使用addlinkedsrvlogin登录到Oracle. 如: sp_addlinkedsrvlogin 'TESTLINK', 'false', NULL,'OracleUsr', 'OraclePwd' ps. 'TESTLINK'是步骤2确定的,'OracleUsr'是Oracle用户名,'OraclePwd'是用户密码。
执行T-SQL语句。如: select * from <linkservername>.<dbname>.<dbo>.<dbtable>. ps.linkservername是步骤2确定的。
SQL Server 7.0是否可以使用RECURSIVE TRIGGER?

可以。

执行xp_logininfo时出现

Server: Msg 8198, Level 16, State 10, Procedure xp_logininfo, Line 58 Could not obtain information about Windows NT group/user ''

如何解决?

这是因为Windows NT的本地组或全局组与域或计算机的名称相同。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值