WEB开发网
开发学院数据库MSSQL Server SQLServer7.0函数及SQL语句相关问题 阅读

SQLServer7.0函数及SQL语句相关问题

 2007-11-11 07:06:59 来源:WEB开发网   
核心提示:1 要将一个数据库的所有表格使用批通信程序取出(BCP OUT),有何较快的方法? 2 如何得到一个数据库中每个表格的数据数目? 3 sql server(WINDOWS平台上强大的数据库平台) 7.0限制的同时使用的表格和视图数目为多少? 4 sql server(WINDOWS平台上强大的数据库平台) 7.0与sq

  1 要将一个数据库的所有表格使用批通信程序取出(BCP OUT),有何较快的方法?
  2 如何得到一个数据库中每个表格的数据数目?
  3 sql server(WINDOWS平台上强大的数据库平台) 7.0限制的同时使用的表格和视图数目为多少?
  4 sql server(WINDOWS平台上强大的数据库平台) 7.0与sql server(WINDOWS平台上强大的数据库平台)6.5的DMO版本不同,是否可以在sql server(WINDOWS平台上强大的数据库平台) 7.0执行sql server(WINDOWS平台上强大的数据库平台) 6.5的存储过程?
  5 为何使用批通信程序导入(BCP IN)sql server(WINDOWS平台上强大的数据库平台) 7.0 Datetime字段后,millisecond(千分之一秒)会与导入前的值不同?
  6 为什么使用sql server(WINDOWS平台上强大的数据库平台) 7.0的标准差函数STDEV时出现"A domain error occurred"信息?
  7 如何使用sql server(WINDOWS平台上强大的数据库平台) 7.0查询选取(Query Analyzer)查询Oracle(大型网站数据库平台)数据?
  8 sql server(WINDOWS平台上强大的数据库平台) 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(WINDOWS平台上强大的数据库平台) 7.0限制的同时使用的表格和视图数目为多少?
  
  256,sql server(WINDOWS平台上强大的数据库平台) 6.5为16。
  
  sql server(WINDOWS平台上强大的数据库平台) 7.0与sql server(WINDOWS平台上强大的数据库平台)6.5的DMO版本不同,是否可以在sql server(WINDOWS平台上强大的数据库平台) 7.0执行sql server(WINDOWS平台上强大的数据库平台) 6.5的存储过程?
  
  可以,请将sql server(WINDOWS平台上强大的数据库平台) 6.5升级到SP5a,但是无法使用sql server(WINDOWS平台上强大的数据库平台) 7.0的MMC管理sql server(WINDOWS平台上强大的数据库平台) 6.5。
  
  为何使用批通信程序导入(BCP IN)sql server(WINDOWS平台上强大的数据库平台) 7.0 Datetime字段后,millisecond(千分之一秒)会与导入前的值不同?
  
  sql server(WINDOWS平台上强大的数据库平台) 7.0时间的准确值为百分之三秒,所以millisecond(千分之一秒)的值为0、3或7详细请参考sql server(WINDOWS平台上强大的数据库平台) 7.0联机书籍datetime and smalldatetime (T-SQL)。
  
  为什么使用sql server(WINDOWS平台上强大的数据库平台) 7.0的标准差函数STDEV时出现"A domain error occurred"信息?
  
  当数据为浮点数时,会因为浮点数运算不精确而造成此问题。当VAR(x) 为零时,如果计算机是用一个很小的负数表示,那么就无法开平方根运算标准差,就会出现这样的问题。当所有的数值都相等时,就很有可能出现这种错误信息。对于这种情形,建议使用下列方法: select sqrt(abs(var())) from
  
  如何使用sql server(WINDOWS平台上强大的数据库平台) 7.0查询选取(Query Analyzer)查询Oracle(大型网站数据库平台)数据?
  
  请参考下列示例:
  先使用Oracle(大型网站数据库平台)客户端软件设定一个网络服务名称,如:"Oracle(大型网站数据库平台)Server'?请参考Oracle(大型网站数据库平台)手册?
  在sql server(WINDOWS平台上强大的数据库平台) 7.0中,使用链接的服务器连接到Oracle(大型网站数据库平台). 如: sp_addlinkedserver 'TESTLINK', 'Oracle(大型网站数据库平台)', 'MSDAORA', 'Oracle(大型网站数据库平台)Server', ps. 'TESTLINK'是由您自定义的,'Oracle(大型网站数据库平台)', 'MSDAORA'是固定的,'Oracle(大型网站数据库平台)Server'是由步骤1确定的。
  在sql server(WINDOWS平台上强大的数据库平台) 7.0中,使用addlinkedsrvlogin登录到Oracle(大型网站数据库平台). 如: sp_addlinkedsrvlogin 'TESTLINK', 'false', NULL,'Oracle(大型网站数据库平台)Usr', 'Oracle(大型网站数据库平台)Pwd' ps. 'TESTLINK'是步骤2确定的,'Oracle(大型网站数据库平台)Usr'是Oracle(大型网站数据库平台)用户名,'Oracle(大型网站数据库平台)Pwd'是用户密码。
  
  执行T-SQL语句。如: select * from <linkservername>.<dbname>.<dbo>.<dbtable>. ps.linkservername是步骤2确定的。 sql server(WINDOWS平台上强大的数据库平台) 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的本地组或全局组与域或计算机的名称相同

Tags:SQLServer 函数 SQL

编辑录入:coldstar [复制链接] [打 印]
赞助商链接