-- 统计远程数据表记录行数
-- create or alter
alter procedure p_row_count
@linked_server varchar(50), -- 链接服务器名称
@linked_db varchar(50), -- 链接数据库名称
@linked_schema varchar(50), -- 链接表架构
@table_name varchar(50), -- 表名
@where_condition varchar(2000), -- 查询条件
@row_count int output -- 记录行数
with encryption
as
begin
-- 变量定义
declare @sql nvarchar(2000); -- SQL 语句
declare @parameter_def nvarchar(200); -- SQL 语句参数定义
set @sql = 'select @row_count = count(1)' + char(13)
+ ' from [' + @linked_server + '].[' + @linked_db + '].[' + @linked_schema + '].' + @table_name + char(13);
if @where_condition is not null and @where_condition != ''
set @sql = @sql + ' where ' + @where_condition;
-- print char(13) + @sql
set @parameter_def = N'@row_count int output';
exec sp_executesql @sql, @parameter_def, @row_count = @row_count output;
end