小编Way*_*fer的帖子

是否有可以在 SELECT TOP 中使用的值来返回所有行?

我允许最终用户定义查询返回的行数(SELECT TOP (@x))。是否有可以在返回所有行的地方输入的值?或者,如果他们想要返回所有行,我是否必须在没有 TOP (@x) 的情况下动态创建查询?

我正在使用 SQL Server 2012。

sql-server

13
推荐指数
3
解决办法
8472
查看次数

为什么 C# SMO 看不到列上的扩展属性,而 Powershell SMO 可以?

我正在尝试读取 winforms C# 应用程序中表和列的扩展属性。我正在使用 SQL Server SMO 来执行此操作。当我执行应用程序时,它看不到扩展属性,但是当我使用 PowerShell 读取扩展属性时,它确实看到了扩展属性。

C# 代码:

var x = col.ExtendedProperties.Count;
var NPI = col.ExtendedProperties["NPI"].Value;
bool npi = bool.Parse(NPI.ToString());
Run Code Online (Sandbox Code Playgroud)

PowerShell 代码:

Add-Type -AssemblyName "Microsoft.SqlServer.Smo, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
$server = New-Object Microsoft.SqlServer.Management.Smo.Server $env:COMPUTERNAME
$server.Databases["<db name>"].Tables["<table name>"].Columns["<column name>"].ExtendedProperties | Select Name, Value, State
Run Code Online (Sandbox Code Playgroud)

我已经检查过,Visual Studio 和 PowerShell 都使用相同版本的 SMO (11.0.0.0)。当我执行 C# 代码时 col.ExtendedProperties.Count = 0,但是当我执行 PowerShell 代码时,我得到:

Name Value    State
---- -----    -----
NPI  False Existing
Run Code Online (Sandbox Code Playgroud)

有没有人对为什么会发生这种情况有任何想法?

附加信息

在 C# 代码中,我使用以下方法在表上打开了一个 DataReader:

sourceServer.ConnectionContext.ExecuteReader(<select command>)
Run Code Online (Sandbox Code Playgroud)

从表中检索数据。然后我使用 DataReader 进入一个 …

sql-server powershell c# sql-server-2012 smo

7
推荐指数
1
解决办法
1540
查看次数

标签 统计

sql-server ×2

c# ×1

powershell ×1

smo ×1

sql-server-2012 ×1