通过PowerShell通过参数打开或关闭T-SQL TOP

时间:2018-02-21 16:48:31

标签: powershell tsql

是否可以将参数发送到powershell sql命令(使用invoke-sqlcmd),该命令将选择查询的所有行或仅选择前5行?

e.g。

SELECT TOP $(rowCount) FROM MyTable

我无法在脚本中有效地打开/关闭此选项。我认为PERCENTAGE可以工作,但我只想选择5行而 PERCENTAGE 会返回太多,因为我处理的数据集包含10行和数百万行。

我想从PowerShell和SQL管理工作室运行这个脚本而不抱怨它的语义,但它似乎不喜欢$()语法。

1 个答案:

答案 0 :(得分:2)

top中使用的值已经可以在vanilla sql中变为动态:

declare @t table (i int);
insert into @t values(1), (1), (2), (3), (1), (2);

declare @n bigint = 2;

select top (@n) *
from @t;

set @n = 9223372036854775807;  -- Max value available in a BIGINT

select top (@n) *
from @t;