请问网桥是属于链路层还是网络层?

请问网桥是属于链路层还是网络层?,第1张

属于链路层

什么是网桥

网桥这种设备看上去有点像中继器。它具有单个的输入端口和输出端口。它与中继器的不同之处就在于它能够解析它收发的数据。网桥属于O S I 模型的数据链路层;数据链路层能够进行流控制、纠错处理以及地址分配。网桥能够解析它所接受的帧,并能指导如何把数据传送到目的地。特别是它能够读取目标地址信息(M A C ),并决定是否向网络的其他段转发(重发)数据包,而且,如果数据包的目标地址与源地址位于同一段,就可以把它过滤掉。当节点通过网桥传输数据时,网桥就会根据已知的M A C 地址和它们在网络中的位置建立过滤数据库(也就是人们熟知的转发表)。网桥利用过滤数据库来决定是转发数据包还是把它过滤掉.

declare @cur cursor

declare @n nvarchar(500)

declare @r as int

declare @sql nvarchar(500)

set @cur= cursor for

SELECT name FROM sysobjects WHERE (xtype = 'u')

open @cur

FETCH NEXT FROM @cur INTO @N

WHILE @@FETCH_STATUS = 0

BEGIN

set @sql ='if not exists(SELECT * FROM ' + @n + ') drop table ' + @n

--exec sp_executesql @sql --我先注释了这一行,注意危险,你确认一下

print @sql

FETCH NEXT FROM @cur INTO @N

END

你的问题是改了又改,我的回答也改了又改

上面的回答中: exec sp_executesql @sql 就把没有行的表给删除了,看注释

如果你要列出表的话,如下:

set nocount on

declare @cur cursor

declare @n nvarchar(500)

declare @r as int

declare @sql nvarchar(500)

set @cur= cursor for

SELECT name FROM sysobjects WHERE OBJECTPROPERTY(id, N'IsUserTable') = 1

declare @tb table (name nvarchar(50) ,rows int)

open @cur

FETCH NEXT FROM @cur INTO @N

WHILE @@FETCH_STATUS = 0

BEGIN

set @sql = 'select @c=count (*) from ' + @n

print @n

exec sp_executesql @sql, N'@c int output',@c=@r output

insert into @tb (name,rows) values(@n,@r)

FETCH NEXT FROM @cur INTO @N

END

--select * from @tb --如果你要每个表名称和行数

select name from @tb where rows=0 --这样就是没有记录的表名

手工打字,可能出错,还是要你自己测试一下,

要这点分数还真有点难


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9921629.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存