📄 sql server开发技巧-22.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#000000" text="#FFFFFF">
<font color="#00CC00">SQL Server 7.0 函数及SQL语句相关问题</font> <br>
<br>
<br>
<p>要将一个数据库的所有表格使用批通信程序取出(BCP OUT),有何较快的方法? </p>
<p>假设您的SQLServer 计算机名称为technology1,sa密码空的,如果要将pubs使用批通信程序取出,可以参照下列步骤: </p>
<p>1)在Query Analyzer中执行下列指令: <br>
select 'bcp pubs..'+name+' out'+' d: est '+name+'.txt -c -Stechnology1 -Usa
-P' from sysobjects where type = 'U' </p>
<p>2)结果如下 </p>
<p><br>
----------------------------------------------------------------------------bcp
pubs..authors out d: estauthors.txt -c -Stechnology1 -Usa -P <br>
bcp pubs..publishers out d: estpublishers.txt -c -Stechnology1 -Usa -P <br>
bcp pubs..titles out d: est itles.txt -c -Stechnology1 -Usa -P <br>
bcp pubs..titleauthor out d: est itleauthor.txt -c -Stechnology1 -Usa -P <br>
bcp pubs..stores out d: eststores.txt -c -Stechnology1 -Usa -P <br>
bcp pubs..sales out d: estsales.txt -c -Stechnology1 -Usa -P <br>
bcp pubs..roysched out d: est <br>
oysched.txt -c -Stechnology1 -Usa -P <br>
bcp pubs..discounts out d: estdiscounts.txt -c -Stechnology1 -Usa -P <br>
bcp pubs..jobs out d: estjobs.txt -c -Stechnology1 -Usa -P <br>
bcp pubs..pub_info out d: estpub_info.txt -c -Stechnology1 -Usa -P <br>
bcp pubs..employee out d: estemployee.txt -c -Stechnology1 -Usa -P <br>
(11 row(s) affected) </p>
<p>3)将结果储存成文字文件,文件名为bat,将第一行的------与最后一行(11 row(s) affected)去掉。 </p>
<p>4)在DOS下创建d: est的子目录,并执行上述的bat文件,该bat文件将Pubs数据库中的每个表格存放到每个txt文件中 </p>
<p>如何得到一个数据库中每个表格的数据数目? </p>
<p>参考下列方法可以获得每个表格的数据数目。 </p>
<p>USE pubs -- 可改成您的数据库名称 <br>
SET NOCOUNT <br>
ONDECLARE tables_cursor CURSOR <br>
FOR <br>
SELECT name FROM sysobjects WHERE type = 'U' <br>
OPEN tables_cursor <br>
DECLARE @tablename varchar(30), @quote char(1) <br>
SELECT @quote = '"' </p>
<p>FETCH NEXT FROM tables_cursor INTO @tablename <br>
WHILE (@@fetch_status <> -1) <br>
BEGIN <br>
EXEC ("Select " + @quote+"Rows in " + @tablename + "
= "+ @quote + ", count(*) from "+ @tablename) <br>
FETCH NEXT FROM tables_cursor INTO @tablename <br>
END <br>
DEALLOCATE tables_cursor <br>
SET NOCOUNT OFF <br>
SQL Server 7.0限制的同时使用的表格和视图数目为多少? </p>
<p>256,SQL Server 6.5为16。 </p>
<p>SQL Server 7.0与SQL Server6.5的DMO版本不同,是否可以在SQL Server 7.0执行SQL Server 6.5的存储过程?
</p>
<p>可以,请将SQL Server 6.5升级到SP5a,但是无法使用SQL Server 7.0的MMC管理SQL Server 6.5。 </p>
<p>为何使用批通信程序导入(BCP IN)SQL Server 7.0 Datetime字段后,millisecond(千分之一秒)会与导入前的值不同?
</p>
<p>SQL Server 7.0时间的准确值为百分之三秒,所以millisecond(千分之一秒)的值为0、3或7详细请参考SQL Server 7.0联机书籍datetime
and smalldatetime (T-SQL)。 </p>
<p>为什么使用SQL Server 7.0的标准差函数STDEV时出现"A domain error occurred"信息? </p>
<p>当数据为浮点数时,会因为浮点数运算不精确而造成此问题。当VAR(x) 为零时,如果计算机是用一个很小的负数表示,那么就无法开平方根运算标准差,就会出现这样的问题。当所有的数值都相等时,就很有可能出现这种错误信息。对于这种情形,建议使用下列方法:
select sqrt(abs(var())) from </p>
<p>如何使用SQL Server 7.0查询选取(Query Analyzer)查询Oracle数据? </p>
<p>请参考下列示例: </p>
<p>先使用Oracle客户端软件设定一个网络服务名称,如:"OracleServer'﹝请参考Oracle手册﹞ <br>
在SQL Server 7.0中,使用链接的服务器连接到Oracle. 如: sp_addlinkedserver 'TESTLINK', 'Oracle',
'MSDAORA', 'OracleServer', ps. 'TESTLINK'是由您自定义的,'Oracle', 'MSDAORA'是固定的,'OracleServer'是由步骤1确定的。
<br>
在SQL Server 7.0中,使用addlinkedsrvlogin登录到Oracle. 如: sp_addlinkedsrvlogin 'TESTLINK',
'false', NULL,'OracleUsr', 'OraclePwd' ps. 'TESTLINK'是步骤2确定的,'OracleUsr'是Oracle用户名,'OraclePwd'是用户密码。
<br>
执行T-SQL语句。如: select * from <linkservername>.<dbname>.<dbo>.<dbtable>.
ps.linkservername是步骤2确定的。 <br>
SQL Server 7.0是否可以使用RECURSIVE TRIGGER? </p>
<p>可以。 </p>
<p>执行xp_logininfo时出现 </p>
<p>Server: Msg 8198, Level 16, State 10, Procedure xp_logininfo, Line 58 Could
not obtain information about Windows NT group/user '' </p>
<p>如何解决? </p>
<p>这是因为Windows NT的本地组或全局组与域或计算机的名称相同。 </p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -