??xml version="1.0" encoding="utf-8" standalone="yes"?>成人一区二区在线,欧美激情偷拍自拍,蜜桃免费一区二区三区 http://www.aygfsteel.com/keweibo/category/41658.html一? Java 多能 C#,Delphi,Powerbuilder ...
<br>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-1944176156128447";
/* 468x15, 创徏?09-2-25 */
google_ad_slot = "5582725142";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script> zh-cn Fri, 18 Jul 2014 05:49:21 GMT Fri, 18 Jul 2014 05:49:21 GMT 60 SQL Server 2005中的CTE递归查询得到一|(wi) (? http://www.aygfsteel.com/keweibo/articles/415936.htmlKe Ke Thu, 17 Jul 2014 06:46:00 GMT http://www.aygfsteel.com/keweibo/articles/415936.html http://www.aygfsteel.com/keweibo/comments/415936.html http://www.aygfsteel.com/keweibo/articles/415936.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/415936.html http://www.aygfsteel.com/keweibo/services/trackbacks/415936.html http://blog.csdn.net/bin_520_yan/article/details/5998349
感觉q个CTE递归查询蛮好用的Q先举个例子Q?/p>
use City; go create table Tree ( ID int identity(1,1) primary key not null , Name varchar(20) not null , Parent varchar(20) null ) go insert Tree values('大学' , null ) insert Tree values('学院' , '大学' ) insert Tree values('计算机学? , '学院' ) insert Tree values('|络工程' , '计算机学? ) insert Tree values('信息理' , '计算机学? ) insert Tree values('?sh)信学? , '学院' ) insert Tree values('教务? , '大学' ) insert Tree values('材料U? , '教务? ) insert Tree values('招生? , '大学' ) go with CTE as ( -->Begin 一个定位点成员 select ID, Name,Parent,cast(Name as nvarchar(max)) as TE,0 as Levle from Tree where Parent is null -->End union all -->Begin一个递归成员 select Tree.ID, Tree.Name,Tree.Parent,cast(replicate(' ' ,len(CTE.TE))+ '|_' +Tree.name as nvarchar(MAX)) as TE,Levle+1 as Levle from Tree inner join CTE on Tree.Parent=CTE.Name -->End ) select * from CTE order by ID --1.?nbsp;CTE 表达式拆分ؓ(f)定位Ҏ(gu)员和递归成员?nbsp; --2.q行定位Ҏ(gu)员,创徏W一个调用或基准l果?nbsp;(T0)?nbsp; --3.q行递归成员Q将 Ti 作ؓ(f)输入(q里只有一条记?Q将 Ti+1 作ؓ(f)输出?nbsp; --4.重复步骤 3Q直到返回空集?nbsp; --5.q回l果集。这是对 T0 ?nbsp;Tn 执行 UNION ALL 的结果?nbsp;
上面的SQL语句再次插入一条数据:(x)
insert Tree values('|络1?,'|络工程')
q行l果如下图:(x)
? q行l果
注意点:(x)貌似在递归成员处所选择的字D都必须Tree表的数据Q而不能是CTEl果集中的除?jin)Tree中没有而CTE中有的字D在q里才可以引用,比如字段TE?/p>
首先看下Q遍历的W?条记录的SQL语句Q?/p>
select ID, Name,Parent,cast(Name as nvarchar(max)) as TE,0 as Levle from Tree where Parent is null
获取的结果ؓ(f)Q?/p>
Name Parent TE Levle
-------------------------------------
大学 NULL 大学 0
递归W?ơ所获取的结果集合的cSQL语句为:(x)
select Tree.ID, Tree.Name,Tree.Parent,cast(replicate( ' ' ,len(CTE.TE))+ '|_' +Tree.name as nvarchar(MAX)) as TE,Levle+1 as Levle from Tree inner join (select ID, Name,Parent,cast(Name as nvarchar(max)) as TE,0 as Levle from Tree where Parent is null ) as CTE on Tree.Parent=CTE.Name
上面的CTE子查询的l果是W一ơ递归查询的结果集Q上面SQLq行l果为:(x)
同样的,第二次递归查询的上面三条记录作为第三次查询?#8216;定位成员’Q?/p>
【这里要注意Q上面的三条记录是从最后一条开始依ơ作为第三次递归的输入的Q即W一条是ID=9的记录,接下来是7?Q关于第四次递归也类伹{?/p>
W三ơ递归cSQL语句
select Tree.ID, Tree.Name,Tree.Parent,cast(replicate( ' ' ,len(CTE.TE))+ '|_' +Tree.name as nvarchar(MAX)) as TE,Levle+1 as Levle from Tree inner join (W二ơ递归查询的SQL语句)as CTE on Tree.Parent=CTE.Name
l果如下Q?/p>
其实每次递归的类SQL可ؓ(f)如下所C:(x)
select Tree.ID, Tree.Name,Tree.Parent,cast(replicate( ' ' ,len(CTE.TE))+ '|_' +Tree.name as nvarchar(MAX)) as TE,Levle+1 as Levle from Tree inner join (上次递归查询的结果集Q仅仅是上次那一ơ的Q而不是以前的dl果? as CTE on Tree.Parent=CTE.Name
W四ơ递归一ơ类推,最后所查询的结果ؓ(f)上面所有递归的union?/p>
l:(x)在上面的SQ语句查询l果中,ID?0的记录应该要攑֜ID?的后面?/p>
往数据表中再次d两条记录Q?/p>
insert Tree values('计科','计算机学?) insert Tree values('?,'|络1?)
再次修改上面的SQL语句Q?/p>
with CTE as ( -->Begin 一个定位点成员 select ID, Name,Parent,cast(Name as nvarchar(max)) as TE, ROW_NUMBER()over(order by getdate()) as OrderID --最关键是上面这个字D,要获取排序字D,按字W串来排序?nbsp; --其中H口函数必须要用order byQ但是不能用整型Q那q旉?nbsp; from Tree where Parent is null -->End union all -->Begin一个递归成员 select Tree.ID, Tree.Name,Tree.Parent,cast(replicate(' ' ,len(CTE.TE))+ '|_' +Tree.name as nvarchar(MAX)) as TE, CTE.OrderID*100+ROW_NUMBER()over(Order by GETDATE()) as OrderID from Tree inner join CTE on Tree.Parent=CTE.Name -->End ) select * from CTE order by LTRIM(OrderID)--最后将q个整型数据转换为字W串型的q行排序 --有时候整型可以比大小Q字W串也可以,字符串比的大是一位一位进行字W比较的 --整型+字符?=整型Q只有字W串+字符?=两个字符串的q和 --递归查询中:(x)W二条记录可以引用第一条记录的?nbsp; --动态加载记录时Q同一个等U的记录识别W:(x)RowNumber()over(order by getdate()) --延Q可以动态获取某个部门下的所以子部门。也可以获取该部门上U的所以部?nbsp; --ȝQ首先要拼凑Z个整型数据,然后转换为字W串Q最后是q行字符串的orderQ而不是整型数据的orderQ?nbsp;
最后的l果为:(x)
? q行l果
q样Q无论用h入多条记录都可以进行按部门Q按规律q行查询?/p>
]]> SQL Server 2000 Split 自定义函?/title> http://www.aygfsteel.com/keweibo/articles/406147.htmlKe Ke Fri, 08 Nov 2013 08:57:00 GMT http://www.aygfsteel.com/keweibo/articles/406147.html http://www.aygfsteel.com/keweibo/comments/406147.html http://www.aygfsteel.com/keweibo/articles/406147.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/406147.html http://www.aygfsteel.com/keweibo/services/trackbacks/406147.html /****** Object: Function [dbo].[F_SQLSERVER_SPLIT] Script Date: 2013-10-30 16:21:46 ******/USE [ZBP];
GO
SET ANSI_NULLS OFF;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE FUNCTION [dbo].[F_SQLSERVER_SPLIT](@Long_str varchar(8000),@split_str varchar(100))
RETURNS @tmp TABLE(
ID inT IDENTITY PRIMARY KEY,
short_str varchar(8000)
)
AS
BEGIN
DECLARE @long_str_Tmp varchar(8000),@short_str varchar(8000),@split_str_length int
SET @split_str_length = LEN(@split_str)
IF CHARINDEX(@split_str,@Long_str)=1
SET @long_str_Tmp=SUBSTRING(@Long_str,@split_str_length+1,LEN(@Long_str)-@split_str_length)
ELSE
SET @long_str_Tmp=@Long_str
IF CHARINDEX(REVERSE(@split_str),REVERSE(@long_str_Tmp))>1
SET @long_str_Tmp=@long_str_Tmp+@split_str
ELSE
SET @long_str_Tmp=@long_str_Tmp
IF CHARINDEX(@split_str,@long_str_Tmp)=0
Insert INTO @tmp select @long_str_Tmp
ELSE
BEGIN
WHILE CHARINDEX(@split_str,@long_str_Tmp)>0
BEGIN
SET @short_str=SUBSTRING(@long_str_Tmp,1,CHARINDEX(@split_str,@long_str_Tmp)-1)
DECLARE @long_str_Tmp_LEN INT,@split_str_Position_END int
SET @long_str_Tmp_LEN = LEN(@long_str_Tmp)
SET @split_str_Position_END = LEN(@short_str)+@split_str_length
SET @long_str_Tmp=REVERSE(SUBSTRING(REVERSE(@long_str_Tmp),1,@long_str_Tmp_LEN-@split_str_Position_END))
IF @short_str<>'' Insert INTO @tmp select @short_str
END
END
RETURN
END
GO
]]> SQL Server 2000 十六q制与十q制互{Q收藏)(j) http://www.aygfsteel.com/keweibo/articles/406146.htmlKe Ke Fri, 08 Nov 2013 08:54:00 GMT http://www.aygfsteel.com/keweibo/articles/406146.html http://www.aygfsteel.com/keweibo/comments/406146.html http://www.aygfsteel.com/keweibo/articles/406146.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/406146.html http://www.aygfsteel.com/keweibo/services/trackbacks/406146.html 十进制{十六q制 /****** Object: Function [dbo].[IntToHex] Script Date: 2013-10-30 16:22:15 ******/
USE [ZBP];
GO
SET ANSI_NULLS OFF;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE FUNCTION [dbo].[IntToHex]
(@IntNum bigint)
RETURNS varchar(16)
AS
BEGIN
declare @Mods bigint, @res varchar(16)
set @res=''
while @IntNum <> 0
begin
set @Mods = @IntNum % 16
if @Mods > 9
set @res = Char(Ascii('A')+@Mods-10)+@res
else
set @res = Cast(@Mods as varchar(4))+@res
set @IntNum = @IntNum/16
end
return @res
END
GO
十六q制转十q制
/****** Object: Function [dbo].[HexToInt] Script Date: 2013-10-30 16:22:04 ******/
USE [ZBP];
GO
SET ANSI_NULLS OFF;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE FUNCTION [dbo].[HexToInt]
(@hex varchar(100))
RETURNS int
AS
BEGIN
Declare @result bigint,@iPos int,@iTmp bigint,@iLoop int,@tmp varchar(16)
Set @tmp = '0123456789ABCDEF'
Select @result = 0,@iPos = 0
While @iPos < Len(@hex)
Begin
Set @iTmp =
CharIndex(substring(@hex,Len(@hex) - @iPos,1),@tmp)-1
Set @iLoop = 1
While @iLoop <= @iPos and @iTmp > 0
begin
Set @iTmp = @iTmp * 16
Set @iLoop = @iLoop + 1
end
Set @result = @result + @iTmp
Set @iLoop = @iLoop + 1
Set @iPos = @iPos + 1
End
return @result
END
GO
]]>存储q程递归调用?游标的用注意事? http://www.aygfsteel.com/keweibo/articles/399268.htmlKe Ke Tue, 14 May 2013 09:17:00 GMT http://www.aygfsteel.com/keweibo/articles/399268.html http://www.aygfsteel.com/keweibo/comments/399268.html http://www.aygfsteel.com/keweibo/articles/399268.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/399268.html http://www.aygfsteel.com/keweibo/services/trackbacks/399268.html 注意Q?/span>必须 把游标声明ؓ(f)局部的Q即加上local CREATE PROCEDURE [dbo].[p_expand_k3_bom]
@p_itemID int, @p_levelID int
WITH EXEC AS CALLER
AS
declare @v_itemID int
declare @v_levelID int
declare @v_itemNO varchar(20)
declare @v_itemName varchar(200)
declare @v_itemModel varchar(200)
declare @v_note1 varchar(20)
declare cursor_bom CURSOR LOCAL FOR select b.FItemID,c.FShortNumber, c.FName, c.FModel, b.FNote1
from AIS20120110144135.dbo.ICBOM a, AIS20120110144135.dbo.ICBOMChild b, AIS20120110144135.dbo.t_ICItem c
where a.FInterID = b.FInterID
and b.FItemID = c.FItemID
and a.FInterID = (select top 1 FInterID from AIS20120110144135.dbo.ICBOM where FItemID = @p_itemID)
and a.FItemID = @p_itemID
set @v_levelID = @p_levelID+1
open cursor_bom
fetch next from cursor_bom into @v_itemID, @v_itemNO, @v_itemName, @v_itemModel, @v_note1
while (@@FETCH_STATUS = 0)
begin
INSERT INTO k3_bom_info
(level_id, item_id, item_no, item_name, item_model, note_1)
VALUES (@v_levelID, @v_itemID, @v_itemNO, @v_itemName, @v_itemModel, @v_note1)
exec p_expand_k3_bom @v_itemID, @v_levelID
fetch next from cursor_bom into @v_itemID, @v_itemNO, @v_itemName, @v_itemModel, @v_note1
end
close cursor_bom
deallocate cursor_bom
GO
]]> 如何查看SQL SERVER补丁的版?/title> http://www.aygfsteel.com/keweibo/articles/391210.htmlKe Ke Mon, 12 Nov 2012 08:19:00 GMT http://www.aygfsteel.com/keweibo/articles/391210.html http://www.aygfsteel.com/keweibo/comments/391210.html http://www.aygfsteel.com/keweibo/articles/391210.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/391210.html http://www.aygfsteel.com/keweibo/services/trackbacks/391210.html 原文Q?a >http://hi.baidu.com/einsteinalbert/item/b0366529705c5cfb51fd87ee 有两U方法:(x)W一步:(x)使用SQL语句查询 select @@version 查询l果如下Q?/p>
Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 2)
其实在C:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqlservr.exe 点击鼠标右键查看版本也能得到Q不q信息比较简单而已?.00.2039׃表安装的SQL Server的版本了(jin)。对应以下的表格Q可以查出来具体对应的补丁版本?strong style="color: #ff0000">8.00.2039表示安装?jin)SP4Q?.00.760表示安装?jin)SP3?br />W二步:(x)对照表格查找具体的补丁版?/strong>SQL Server Versions @Version SQL Server Version Released 6.50.201 SQL Server 6.5 RTM 6.50.213 SQL Server 6.5 with Service Pack 1 6.50.240 SQL Server 6.5 with Service Pack 2 6.50.258 SQL Server 6.5 with Service Pack 3 6.50.281 SQL Server 6.5 with Service Pack 4 6.50.415 SQL Server 6.5 with Service Pack 5 6.50.416 SQL Server 6.5 with Service Pack 5a 7.00.623 SQL Server 7.0 / MSDE 1.0 RTM 7.00.699 SQL Server 7.0 SP1 July 1999 7.00.842 SQL Server 7.0 SP2 March 20th, 2000 7.00.961 SQL Server 7.0 SP3 December 15th, 2000 7.00.1063 SQL Server 7.0 SP4 8.00.194 SQL Server 2000 RTM 8.00.384 SQL Server 2000 SP1 8.00.534 SQL Server 2000 SP2 November 30th, 2001 8.00.760 SQL Server 2000 SP3 8.00.2039 SQL Server 2000 SP4 更多的版本对照表Q?br />For SQL Server 8 Main Releases @@version Version and Service Pack 8.00.2039 Service Pack 4 8.00.760 Service Pack 3 8.00.534 Service Pack 2 8.00.384 Service Pack 1 8.00.194 RTM All Releases @@version Version and Service Pack 8.00.2039 Service Pack 4 8.00.760 Service Pack 3 8.00.686 SP 2 + Q316333 8.00.679 SP 2 + Q316333 8.00.665 SP 2 + Q316333 8.00.655 SP 2 + Q316333 8.00.650 SP 2 + Q316333 8.00.644 SP 2 + Q324186 8.00.608 SP 2 + Q316333/Q356326/Q356938 8.00.578 SP 2 + Q316333 8.00.534 Service Pack 2 8.00.532 Service Pack 2 Beta 8.00.452 SP 1 + Q308547 8.00.444 SP 1 + Q308547/Q307655 8.00.443 SP 1 + Q307538 8.00.428 SP 1 + Q304850 8.00.384 Service Pack 1 8.00.287 Q297209 8.00.251 Q300194 8.00.250 Q291683 8.00.249 Q288122 8.00.239 Q285290 8.00.233 Q282416 8.00.231 Q282279 8.00.226 Q278239 8.00.225 Q281663 8.00.223 Q280380 8.00.222 Q281769 8.00.218 Q279183 8.00.217 Q279293/Q279296 8.00.211 Q276329 8.00.210 Q275900 8.00.205 Q274330 8.00.204 Q274329 8.00.194 RTM(SQL Server 8 with no service pack applied)For SQL Server 7 Main Releases @@version Version and Service Pack 7.00.1063 SQL Server 7 with Service Pack 4 7.00.961 SQL Server 7 with Service Pack 3 7.00.842 SQL Server 7 with Service Pack 2 7.00.699 SQL Server 7 with Service Pack 1 7.00.623 SQL Server 7 with no service pack applied For SQL Server 6.5 Main Releases @@version Version and Service Pack 6.50.479 SQL Server 6.5 with Service Pack 5a (updated) 6.50.416 SQL Server 6.5 with Service Pack 5a. 6.50.415 SQL Server 6.5 with Service Pack 5 6.50.281 SQL Server 6.5 with Service Pack 4 6.50.258 SQL Server 6.5 with Service Pack 3 6.50.240 SQL Server 6.5 with Service Pack 2 6.50.213 SQL Server 6.5 with Service Pack 1 6.50.201 SQL Server 6.5 with no service pack applied For SQL Server 6 Main Releases @@version Version and Service Pack 6.00.151 SQL Server 6 with Service Pack 3 6.00.139 SQL Server 6 with Service Pack 2 6.00.124 SQL Server 6 with Service Pack 1 6.00.121 SQL Server 6 with no service pack applied 补充 For SQL Server 2005 打了(jin)sp3后版本号?nbsp;9.0.4035 如果是这个旧说明不用打了(jin)Q如果比q个低,说明没有?img src ="http://www.aygfsteel.com/keweibo/aggbug/391210.html" width = "1" height = "1" /> ]]> SQL ServerQ查看SQL日志文g大小命o(h)Qdbcc sqlperf(logspace) http://www.aygfsteel.com/keweibo/articles/388697.htmlKe Ke Thu, 27 Sep 2012 07:46:00 GMT http://www.aygfsteel.com/keweibo/articles/388697.html http://www.aygfsteel.com/keweibo/comments/388697.html http://www.aygfsteel.com/keweibo/articles/388697.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/388697.html http://www.aygfsteel.com/keweibo/services/trackbacks/388697.html SQL ServerQ查看SQL日志文g大小命o(h)Qdbcc sqlperf(logspace)
DBA 日常理工作中,很重要一工作就是监视数据库文g大小Q及(qing)日志文g大小。如果你理数据库的有很多的话,每天一个一个数据库的去查看文g大小太费神?jin),那就写个SQL脚本吧,攑ֈ SQL Agent 中,每天自动L看各个数据库文g?qing)日志文件的大小Q然后再通过数据库邮ӞEmail 到我们手中,岂不快哉Q当?dng)可以把每天的记录存放到数据库中去Q这h据库?qing)日志文件的增长势Q我们也׃目了(jin)然了(jin)?
q里Q介l下获取数据库日志文件大的Ҏ(gu)。其实很单,是执行 SQL Server DBCC 命o(h)Qdbcc sqlperf(logspace)
dbcc sqlperf(logspace)
Database Name Log Size (MB) Log Space Used (%) Status
-------------- ------------------------ ------------------------ -----------
master 2.2421875 32.600174 0
tempdb 0.4921875 39.285713 0
model 0.4921875 41.07143 0
msdb 2.2421875 30.901567 0
pubs 0.7421875 49.934212 0
Northwind 0.9921875 34.940945 0
dbcc sqlperf(logspace) 可以获取实例中每个数据库日志文g大小Q及(qing)使用情况。如果要保存SQL日志文g大小Q则需要先创徏一个数据表Q然后动态执行dbcc sqlperf(logspace)命o(h)Q?
create table dbo.LogSize
(
dbname nvarchar(50) not null
,logsize decimal(8,2) not null
,logused decimal(5,2) not null
,status int null
)
insert into dbo.LogSize
execute('dbcc sqlperf(logspace) with no_infomsgs')
本文?www.sqlstudy.com 原创Q版权所有,转蝲h明作者和出处Q?/font>
本文链接Q?a title="SQL ServerQ查看SQL日志文g大小命o(h)Qdbcc sqlperf(logspace)" target="_blank">http://www.sqlstudy.com/sql_article.php?id=2008082901
]]>该操作未能执行,因ؓ(f) OLE DB 提供E序SQLOLEDB无法启动分布式事?收藏) http://www.aygfsteel.com/keweibo/articles/384082.htmlKe Ke Thu, 26 Jul 2012 08:19:00 GMT http://www.aygfsteel.com/keweibo/articles/384082.html http://www.aygfsteel.com/keweibo/comments/384082.html http://www.aygfsteel.com/keweibo/articles/384082.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/384082.html http://www.aygfsteel.com/keweibo/services/trackbacks/384082.html
windows 2003
sql server 2000/sql server 2005
一?nbsp; 问题现象
sql server 2005 消息 7391 Q?/span> 16 Q状?/span> 2 Q过E?/span> xxxxx Q第 16 ?/span>
无法执行该操作,因ؓ(f)链接服务?/span> "xxxxx" ?/span> OLE DB 讉K接口 "SQLNCLI" 无法启动分布式事务?/span>
sql server 2000 该操作未能执行,因ؓ(f) OLE DB 提供E序 'SQLOLEDB' 无法启动分布式事务?/span>
[OLE/DB provider returned message: C务不能登记到指定的事务处理器中?/span> ]
OLE DB 错误跟踪Q?/span>OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a Q?/span>
二?nbsp; 解决Ҏ(gu)
1. 双方启动 MSDTC 服务
MSDTC MSDTC Distributed Transaction Coordinator 服务?/span>
2. 打开双方 135 端口
MSDTC RPC Remote Procedure Call (RPC) ,RPC 135 RPC 135
telnet IP 135 命o(h)试Ҏ(gu)端口是否对外开放。也可用端口扫描软gQ比?/span>Advanced Port Scanner 3. 保证链接服务器中语句没有讉K发v事务服务器的操作
loopback 4. 在事务开始前加入 set xact_abort ON 语句
OLE DB SQL Server XACT_ABORT ON 5. MSDTC 讄
MSDTC l DTC l l l DTC NT Authority\NetworkService
6. 链接服务器和名称解析问题
sql server :
l ”sql server”
EXEC sp_addlinkedserver
@server='linkServerName',
@srvproduct = N'SQL Server'
@server linkServerName sqlserver ip l “Microsoft OLE DB Provider Sql Server” “Sql Native Client”
EXEC sp_addlinkedserver
@server=' linkServerName ',
@srvproduct='',
@provider='SQLNCLI',
@datasrc='sqlServerName'
@datasrc sqlServerName sqlserver ip
Sql server ip DTC 地址讉K链接服务器,所以要保证数据库引擎和 DTC ip DTC 6.1 数据库引?/span>
@server @datasrc ip ip @server @datasrc sql server ip sql server ip C:\WINDOWS\system32\drivers\etc\hosts xxx.xxx.xxx.xxx ip 6.2 DTC
@server ip hosts DTC @server ip
7. q程服务器上的名U解?/span>
ip C:\WINDOWS\system32\drivers\etc\hosts xxx.xxx.xxx.xxx ]]>Sql Server 2000 DB Link http://www.aygfsteel.com/keweibo/articles/383977.htmlKe Ke Wed, 25 Jul 2012 11:13:00 GMT http://www.aygfsteel.com/keweibo/articles/383977.html http://www.aygfsteel.com/keweibo/comments/383977.html http://www.aygfsteel.com/keweibo/articles/383977.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/383977.html http://www.aygfsteel.com/keweibo/services/trackbacks/383977.html 一个sqlserver下访问另一个sqlserver数据库上的数据,或者访问其他oracle数据库上的数据,要想完成q些操作Q我们首要的是创建数据库链接?
有两U方法可以实现?/p>
W一U:(x)在 sqlserver 企业理器中建立Q这个比较简单的Q首先在 "安全?/span>"节点下的“链接服务?/span>”节点 上点右键 Q在出现的菜单中炏V“新徏数据库链?.. ” Q然后会(x)弹出一个界面,需要我们填写的有:(x)链接服务器(q是一个名字,自己Ҏ(gu)情况自行定义Q以后就要通过他进行远E访问了(jin)Q,提供E序名称Q这个就是选择数据驱动Q根据数据库cd来选择Q不能ؕ选,否则链接不上的)(j)Q数据源Q对于sqlserver是q程数据库服务器的主机名或者IP,对于 oracle 是?oracle net config 中配|的别名Q,安全上下文用户和口o(h)Q也是q程服务器的用户和口令)(j)?/p>
W二U:(x)利用pȝ存储q程
创徏一个sqlserver对sqlserver的数据库链接Q?/p>
exec sp_addlinkedserver 'link_northsnow','','SQLOLEDB','q程服务器主机名或域名或ip地址' exec sp_addlinkedsrvlogin 'link_northsnow','false',null,'用户?,'用户口o(h)'
创徏一个sqlserver对Oracle的数据库链接Q?/p>
exec sp_addlinkedserver 'link_ora', 'Oracle', 'MSDAORA', 'oracle数据库服务器别名' exec sp_addlinkedsrvlogin 'link_ora', false, 'sa', '用户?, '用户口o(h)'
有了(jin)数据库链接我们就可以使用?jin)。对于sqlserver和oracle中的使用Ҏ(gu)是有区别的?/p>
对于sqlserverQ?/p>
create view v_lhsy_user as select * from link_northsnow.lhsy.dbo.sys_user select * from v_lhsy_user 其中lhsyE的数据库名 sys_user?/p>
对于 oracleQ?/p>
create view vvv as select * from link_ora..NORTHSNOW.SYS_USER select * from vvv; 其中northsnowEoracle数据库服务器的一个用户名QSYS_USER用户在该服务器上的一个表Q要非常注意的是Q数据库链接Qlink_oraQ后面有两个点(..Q,再往后面必须全部大写 Q查询的对象一般ؓ(f)表格或者视图,不能查询同义词?/p>
要想删除数据库链接,也有两种Ҏ(gu)Q?/strong>
一U是在企业管理器中操作,q个单?/p>
另一U是用系l存储过E:(x)
exec sp_dropserver 数据库链接名U?'droplogins'
]]>sql serverq原备䆾, 其它用户无法d解决Ҏ(gu) http://www.aygfsteel.com/keweibo/articles/382518.htmlKe Ke Sun, 08 Jul 2012 04:13:00 GMT http://www.aygfsteel.com/keweibo/articles/382518.html http://www.aygfsteel.com/keweibo/comments/382518.html http://www.aygfsteel.com/keweibo/articles/382518.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/382518.html http://www.aygfsteel.com/keweibo/services/trackbacks/382518.html 孤立用户和对象名无效问题的解x(chng)?br /> A. 昄d映射的当前用L(fng)报告
以下CZ生成当前数据库中未链接到Md名的用户?qing)其安全标识W?(SID) 的报告?/p>
EXEC sp_change_users_login 'Report'; B. 数据库用户映射到新?SQL Server d?/h3>在以下示例中Q数据库用户与新?SQL Server d名关联。数据库用户 MB-Sales
首先映射到另一个登录名Q然后重新映到d?nbsp;MaryB
?/p>
--Create the new login. CREATE LOGIN MaryB WITH PASSWORD = '982734snfdHHkjj3'; GO --Map database user MB-Sales to login MaryB. USE AdventureWorks; GO EXEC sp_change_users_login 'Update_One', 'MB-Sales', 'MaryB'; GO C. 自动用h到d名(必要时新Z个登录名Q?/h3>以下CZ昄如何使用 Auto_Fix
现有用h到同名的登录名Q以?qing)如何在不存在登录?nbsp;Mary
的情况下Q创建密码ؓ(f) B3r12-3x$098f6
?SQL Server d?nbsp;Mary
?/p>
USE AdventureWorks; GO EXEC sp_change_users_login 'Auto_Fix', 'Mary', NULL, 'B3r12-3x$098f6'; GO ------------l束-------------------- 一、孤立帐P是某个数据库的帐户只有用户名而没有登录名Q这L(fng)用户在用户库的sysuserspȝ表中存在Q而在master数据库的syslogins中却没有对应的记录?/p>
孤立帐户的生一般是以下两种Q?br />1.备份的数据库在其它机器上还原; 2.重装pȝ或SQL SERVER之后只还原了(jin)用户?/p>
解决Ҏ(gu)是用sp_change_users_login来修复?/p>
sp_change_users_login的用法有三种
用法1Q?br />exec sp_change_users_login 'REPORT' 列出当前数据库的孤立用户
用法2Q?br />exec sp_change_users_login 'AUTO_FIX','用户? 可以自动用户名所对应的同名登录添加到syslogins?br />如果没有建立testuser的登录用Pq可以用 sp_change_users_login 'Auto_Fix', 'testuser', NULL, 'testpass'
用法3Q?br />exec sp_change_users_login 'UPDATE_ONE','用户?,'d? 用户名映射为指定的d名?/strong>
二、对象名'xxxx’无效的问?/p>
q里可能?x)有人遇到对象?‘xxxx’无效的问题。系l表却不?x)生这个问题,而用戯q要加上用户名,然后是表明才能访问,比如select * from author,?x)说对象?author 无效Q而用select * from test.author可以访问,q个是用户首选n份的问题?/p>
解决很简单,是察看testd用户是否hdba的权限或者系l管理的权限Q有的话Lp?jin)?/p>
因ؓ(f)如果用户有dbaw䆾Q那么它登陆后的默认表空间是dbo的系l表I间Q所以去掉了(jin)之后Q就?x)以正常的test表空间访问数据表?/p>
]]> ?SQL SERVER 2000中全角半角互?/title> http://www.aygfsteel.com/keweibo/articles/379663.htmlKe Ke Thu, 31 May 2012 06:08:00 GMT http://www.aygfsteel.com/keweibo/articles/379663.html http://www.aygfsteel.com/keweibo/comments/379663.html http://www.aygfsteel.com/keweibo/articles/379663.html#Feedback 1 http://www.aygfsteel.com/keweibo/comments/commentRss/379663.html http://www.aygfsteel.com/keweibo/services/trackbacks/379663.html CREATE FUNCTION f_Convert( @str NVARCHAR(4000), --要{换的字符?nbsp; @flag bit --转换标志,0转换成半?1转换成全?nbsp; )RETURNS nvarchar(4000) AS BEGIN DECLARE @pat nvarchar(8),@step int,@i int,@spc int IF @flag=0 SELECT @pat=N'%[Q?~]%',@step=-65248, @str=REPLACE(@str,N' ',N' ') ELSE SELECT @pat=N'%[!-~]%',@step=65248, @str=REPLACE(@str,N' ',N' ') SET @i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str) WHILE @i>0 SELECT @str=REPLACE(@str, SUBSTRING(@str,@i,1), NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step)) ,@i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str) RETURN(@str) END GO ---------------------------------
DECLARE @t TABLE(col nvarchar(10)) INSERT @t SELECT 'aa' UNION ALL SELECT 'Aa' UNION ALL SELECT 'QA' UNION ALL SELECT 'Q?Q? UNION ALL SELECT 'Q,Q? select * from @t select dbo.f_Convert(col,0) from @t --试效果
http://topic.csdn.net/t/20060317/14/4621265.html
]]> SQL Server死锁的解除方? http://www.aygfsteel.com/keweibo/articles/379377.htmlKe Ke Mon, 28 May 2012 10:04:00 GMT http://www.aygfsteel.com/keweibo/articles/379377.html http://www.aygfsteel.com/keweibo/comments/379377.html http://www.aygfsteel.com/keweibo/articles/379377.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/379377.html http://www.aygfsteel.com/keweibo/services/trackbacks/379377.html 阅读全文 ]]> SQL SERVER锁机?/title> http://www.aygfsteel.com/keweibo/articles/378398.htmlKe Ke Thu, 17 May 2012 06:09:00 GMT http://www.aygfsteel.com/keweibo/articles/378398.html http://www.aygfsteel.com/keweibo/comments/378398.html http://www.aygfsteel.com/keweibo/articles/378398.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/378398.html http://www.aygfsteel.com/keweibo/services/trackbacks/378398.html SQL SERVER的锁机制是这L(fng)Q?/span>当对表进行修Ҏ(gu)Q系l首先会(x)在TABLE和PAGE上加一个IU或IX锁,也就是意向锁Q然后给被操作行加一个U锁或X锁,因ؓ(f)对表中行修改的事务没l束Q这些锁是一直存在的Q当你查询该表时Q要加S锁,因ؓ(f)S锁和已经加的IU或IX模式不兼容,因此Q查询只能等待?/span> use [DataBase Name]
exec sp_lock
--查看对象?Parameter: ObjectId
SELECT object_name(572642716)
]]> SQL Server2000删除日志释放盘I间 http://www.aygfsteel.com/keweibo/articles/377740.htmlKe Ke Wed, 09 May 2012 12:42:00 GMT http://www.aygfsteel.com/keweibo/articles/377740.html http://www.aygfsteel.com/keweibo/comments/377740.html http://www.aygfsteel.com/keweibo/articles/377740.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/377740.html http://www.aygfsteel.com/keweibo/services/trackbacks/377740.html 转自: http://www.mzwu.com/article.asp?id=2476 在SQL Server2000中要删除日志释放盘I间得分两步q行Q?/span>·执行backup log语句来删除不zd日志Q但此时盘I间q未释放Q?/span>·收羃数据库释放未使用的磁盘空_(d) 下边详细说明Q?/span>①.执行backup log语句删除不活动日?/span>执行sql语句Qbackup log Northwind with no_logQ不zd日志被删除Q下图ؓ(f)sql语句执行前后数据库大:(x) 但在资源理器中查看Q你?x)发现剩余的盘I间q没有多出来Q原因是日志删除?jin),但占用的I间未被释放Q所以得再收~下数据库来释放盘I间?/span>说明 Q这个步骤也有h是执?dump transaction Northwind with no_log"Q但SQL Server2000帮助文g中说dump transaction和backup log是同义的Q保险v见这两句可都执行一下?/span>SQL Server2000帮助相关说明Q?/span>引用内容
DUMP DATABASE ?DUMP TRANSACTION 语句?BACKUP DATABASE ?BACKUP LOG 语句同义。在以后的版本中可能?x)取消?DUMP DATABASE ?DUMP TRANSACTION 语句的支持?nbsp; 考虑删除所有对 DUMP DATABASE 的引用,q替换ؓ(f)?BACKUP DATABASE 的引用。考虑删除所有对 DUMP TRANSACTION 的引用,q替换ؓ(f)?BACKUP LOG 的引用?/div>
②.收羃数据库释放未使用的磁盘空?/span>收羃数据库会(x)删除每个文g中未使用的页Q以释放出磁盘空间。右键单?yn)L据库Q选择"所有Q?#8594;收羃数据?Q点定Q你?x)看到剩余磁盘空间多了(jin)很多出来,数据库大也变化了(jin)?x) 说明 Q第②步操作也可以通过执行sql语句"dbcc shrinkdatabase(Northwind,1) "来进行,但实际发现执行非常慢Q后试可用dbcc shrinkfile(n)语句Q速度快很多,n的值可执行'select * from sysfiles"来获取! ȝt-sqlQ?/strong>/*W一步:(x)查询出文件编?修改@fileid?/ select * from sysfiles /*W二步:(x)删除日志q攄?/ declare @table nvarchar(50),@fileid int set @table = 'Northwind' set @fileid = 2 dump transaction @table with no_log backup log @table with no_log dbcc shrinkfile(@fileid)
More Information:http://wenku.baidu.com/view/099cf2f24693daef5ef73d32.html ]]>Update与Top关键?更新指定表中数据的Q意一条记?/title> http://www.aygfsteel.com/keweibo/articles/377722.htmlKe Ke Wed, 09 May 2012 09:16:00 GMT http://www.aygfsteel.com/keweibo/articles/377722.html http://www.aygfsteel.com/keweibo/comments/377722.html http://www.aygfsteel.com/keweibo/articles/377722.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/377722.html http://www.aygfsteel.com/keweibo/services/trackbacks/377722.html 更新指定表中数据的Q意一条记?br />update ad_user set [password] = '1234'
from ad_user a join (select top 1 * from ad_user) b on a.ad_user_id = b.ad_user_id
]]> U數與日期時間的轉換函數 http://www.aygfsteel.com/keweibo/articles/371280.htmlKe Ke Mon, 05 Mar 2012 09:05:00 GMT http://www.aygfsteel.com/keweibo/articles/371280.html http://www.aygfsteel.com/keweibo/comments/371280.html http://www.aygfsteel.com/keweibo/articles/371280.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/371280.html http://www.aygfsteel.com/keweibo/services/trackbacks/371280.html select dateadd(s, 1261557316 ,'1970-1-1') select datediff(s , '1970-01-01' , '2009-12-23 08:35:16')
]]> 解決com.microsoft.sqlserver.jdbc.SQLServerException: 連接C的 TCP/IP 連接已經失敗 http://www.aygfsteel.com/keweibo/articles/371173.htmlKe Ke Sat, 03 Mar 2012 08:49:00 GMT http://www.aygfsteel.com/keweibo/articles/371173.html http://www.aygfsteel.com/keweibo/comments/371173.html http://www.aygfsteel.com/keweibo/articles/371173.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/371173.html http://www.aygfsteel.com/keweibo/services/trackbacks/371173.html com.microsoft.sqlserver.jdbc.SQLServerException: 連接C?10.240.19.130 ?TCP/IP 連接已經失敗?/span>錯誤: "Connection refused: connect。請連接屬性並檢查 SQL Server 的執行個體是否正在L上執行,而且通訊埠可接收 TCP/IP 連接Q?/span>同時防火牆也未封鎖連到通訊埠的 TCP 連接??/span>XP操作pȝ(dng)上新安裝的SQL Server 2000數據庫用JDBC連結數據庫時出現以上錯誤信息. 在DOS命o(h)H口输入如下命o(h)“netstat - na”Q看下这里面有没?433端口或者自定义的端口,此时未发现SQL的端口处于监听状?/span> 原來是SQL server2000没有打补? 2000在低于SP3的子版本Ӟ没有打开默认?433端口Q需要安裝SP3補丁q行升Q? 安裝完成后再ơ?/span>命o(h)“netstat - na”查看,發現已經1433端口. 測試代碼: package test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Test { /** * @param args */ public static void main(String[] args) { String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加蝲JDBC驱动 String dbURL = "jdbc:sqlserver://10.240.19.130:1433;DatabaseName=dev"; // q接服务器和数据库sample String userName = "sa"; // 默认用户? Q如果没有开启,请到SQL Server Management Studio Express下开启sa用户? String userPwd = "123456789"; // 密码 Q自p? Connection dbConn = null; try { Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); System.out.println("q接成功Q?); // 如果q接成功控制台输出:(x)Connection Successful! } catch (Exception e) { e.printStackTrace(); } finally { try { dbConn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
]]> MSSQL 1069錯誤Q由於登錄失敗而無法啟動服務)(j)解決Ҏ(gu) http://www.aygfsteel.com/keweibo/articles/326533.htmlKe Ke Mon, 19 Jul 2010 09:02:00 GMT http://www.aygfsteel.com/keweibo/articles/326533.html http://www.aygfsteel.com/keweibo/comments/326533.html http://www.aygfsteel.com/keweibo/articles/326533.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/326533.html http://www.aygfsteel.com/keweibo/services/trackbacks/326533.html
在本版面出現這個問的ȝ也算是很高的?jin),新手通常會比較多遇到這個問?br />
原因很簡單,安裝SQL Server時是使用默認登錄用戶來作為啟動SQL
Server服務的賬號(於自己使用的單,通常是administrator?jin)?j)Q當該用戶更改了(jin)用戶名(如有人喜歡把administrator
Ҏ(gu)adminQ或更改?jin)其口o(h)時,再次啟動服務器,出?#8220;同於登錄失敗而無法啟動服?#8221;的錯誤了(jin)
知道?jin)原因,解決?gu)也就很顯然了(jin)
1Q把用戶口o(h)改回原來的,再啟動服?br />
2Q用控刉版服務管理器Q找到MSSQLSERVER服務Q更改啟動賬號信息,Ҏ(gu)變更後的Q再啟動服務
3Q也是推薦用的Ҏ(gu)Q創Z個新用戶Q專門用於啟動SQL Server服務Q安裝SQL Server時就使用該用戶來啟動SQL
ServerQ這樣可以避免用於頻J更改administrator口o(h)而帶來的1069錯誤?jin)。如果已E安裝好SQL
ServerQ也可以在控刉版服務管理器下更改MSSQLSERVER服務的服務賬號信息,換成SQL服務用的用戶?
]]> [Microsoft][ODBC 驱动E序理器] 驱动E序? SQLAllocHandle on SQL_HANDLE_ENV p| http://www.aygfsteel.com/keweibo/articles/289716.htmlKe Ke Tue, 04 Aug 2009 02:28:00 GMT http://www.aygfsteel.com/keweibo/articles/289716.html http://www.aygfsteel.com/keweibo/comments/289716.html http://www.aygfsteel.com/keweibo/articles/289716.html#Feedback 3 http://www.aygfsteel.com/keweibo/comments/commentRss/289716.html http://www.aygfsteel.com/keweibo/services/trackbacks/289716.html
環境變量path?br />
%JAVA_HOME%\bin;%CATALINA_HOME%\bin; D:\oracle\ora92\bin; D:\oracle\isuite\jdk\jre\bin\classic;D:\oracle\isuite\jdk\jre\bin;D:\oracle\isuite\jdk\jre\bin\client;D:\oracle\isuite\jlib;D:\oracle\isuite\bin;D:\oracle\isuite\jre\1.1.8\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
因為昨天又安裝了(jin)一個Oracle客戶端,今天發現ODBCq法用了(jin)Q老是提示“[Microsoft][ODBC 驱动E序理器] 驱动E序?nbsp; SQLAllocHandle on SQL_HANDLE_ENV p|”之類的錯誤信息,把紅色部份調到path值的最前面Q成功解決問!
]]> 通过SQL中的.MDF?LDF文g恢复数据?/title> http://www.aygfsteel.com/keweibo/articles/143050.htmlKe Ke Thu, 06 Sep 2007 00:29:00 GMT http://www.aygfsteel.com/keweibo/articles/143050.html http://www.aygfsteel.com/keweibo/comments/143050.html http://www.aygfsteel.com/keweibo/articles/143050.html#Feedback 0 http://www.aygfsteel.com/keweibo/comments/commentRss/143050.html http://www.aygfsteel.com/keweibo/services/trackbacks/143050.html
企业理?
--右键"数据?
--所有Q?
--附加数据?
--选择你的.mdf文g?
--定
--如果提示没有.ldf文g,是否创徏,选择"?
查询 分析器中的方?
--有数据文件及(qing)日志文g的情?
sp_attach_db '数据库名'
,'数据文g?*.mdf注意要带目录)' --后面可以是用,分隔的该数据库的多个数据文g
,'日志文g?*.ldf注意要带目录)'--后面可以是用,分隔的该数据库的多个日志文g
--如果只有数据文g的情?
sp_attach_single_file_db '数据库名'
,'数据文g?*.mdf注意要带目录)' --后面可以是用,分隔的该数据库的多个数据文g
]]>
վ֩ģ壺
|
|
̨ |
|
˳ |
|
|
Ͳ |
|
ˮ |
|
|
ʡ |
|
|
Ԫ |
|
ƶ |
ֶ |
|
|
Ϫ |
|
|
|
ɽ |
°Ͷ |
ɽ |
|
־ |
; |
|
书 |
|
˫ |
|
|
|
ͻȪ |
|
|