当前位置导航:炫浪网>>网络学院>>编程开发>>MsSQL教程

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


  1 要将一个数据库的所有表格使用批通信程序取出(BCP OUT),有何较快的方法?
  2 如何得到一个数据库中每个表格的数据数目?
  3 SQL Server 7.0限制的同时使用的表格和视图数目为多少?
  4 SQL Server 7.0与SQL Server6.5的DMO版本不同,是否可以在SQL Server 7.0执行SQL Server 6.5的存储过程?
  5 为何使用批通信程序导入(BCP IN)SQL Server 7.0 Datetime字段后,millisecond(千分之一秒)会与导入前的值不同?
  6 为什么使用SQL Server 7.0的标准差函数STDEV时出现"A domain error occurred"信息?
  7 如何使用SQL Server 7.0查询选取(Query Analyzer)查询Oracle数据?
  8 SQL Server 7.0是否可以使用RECURSIVE TRIGGER?
  9 执行xp_logininfo时出现
  
  Server: Msg 8198, Level 16, State 10, Procedure xp_logininfo, Line 58 Could not obtain information about Windows NT group/user ''
  
  如何解决?
  要将一个数据库的所有表格使用批通信程序取出(BCP OUT),有何较快的方法?
  
  假设您的SQLServer 计算机名称为technology1,sa密码空的,如果要将pubs使用批通信程序取出,可以参照下列步骤:
  
  1)在Query Analyzer中执行下列指令:select 'bcp pubs..'+name+' out'+' d:\test\'+name+'.txt -c -Stechnology
  1 -Usa -P' from sysobjects where type = 'U'
  
  2)结果如下
  
  ----------------------------------------------------------------------
  ------bcp pubs..authors out d:\test\authors.txt -c -Stechnology1 -Usa -P
  bcp pubs..publishers out d:\test\publishers.txt -c -Stechnology1 -Usa -P
  bcp pubs..titles out d:\test\titles.txt -c -Stechnology1 -Usa -P
  bcp pubs..titleauthor out d:\test\titleauthor.txt -c -Stechnology1 -Usa -P
  bcp pubs..stores out d:\test\stores.txt -c -Stechnology1 -Usa -P
  bcp pubs..sales out d:\test\sales.txt -c -Stechnology1 -Usa -P
  bcp pubs..roysched out d:\test\roysched.txt -c -Stechnology1 -Usa -P
  bcp pubs..discounts out d:\test\discounts.txt -c -Stechnology1 -Usa -P
  bcp pubs..jobs out d:\test\jobs.txt -c -Stechnology1 -Usa -P
  bcp pubs..pub_info out d:\test\pub_info.txt -c -Stechnology1 -Usa -P
  bcp pubs..employee out d:\test\employee.txt -c -Stechnology1 -Usa -P(11 row(s) affected)
  
  3)将结果储存成文字文件,文件名为bat,将第一行的------与最后一行(11 row(s) affected)去掉。
  
  4)在DOS下创建d:\test的子目录,并执行上述的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的本地组或全局组与域或计算机的名称相同
相关内容
赞助商链接