私のサーバー上には最近、多くのデータベースがあります(私はdboを利用しています)がSSMSでアクセスできなくなっています。私は、このデータベースのための「オブジェクトエクスプローラ」で、テーブルノードを展開すると、私は次のエラーを取得する:Microsoft SQL Server 2016 - SSMS、データベースのテーブルを展開することはできません
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. (.Net SqlClient Data Provider)
しかし、私はそのデータベースで正常に選択を実行することができますし、他のユーザーが、この問題を持っていません。
私は持っています。
- 誤った設定のログインを確認しました。
- ユーザーの設定が間違っているかどうかを確認しました。
- SQL Serverエンジンを再起動しました。
- インストーラユーティリティを使用してSSMSを修復しました。
あなたの入力を非常に感謝しますか?私は困惑しています(これはこれまでに起こったことではありません)。
EDIT:SQLプロファイラを使用してトレースした後、このイベントが発生したため、クエリを抽出してSSMSセッションウィンドウで実行しました。返される結果は、間違ったデータベースからのものです。
EDIT:これに加えて、dbcc checkdb(databasename)を実行してもエラーは返されませんでした。マスターに対しても同様にエラーは返されませんでした。
編集:私は、テーブル]フォルダを展開したときに、クエリが実行されている:
exec sp_executesql N'SELECT
tbl.name AS [Name],
SCHEMA_NAME(tbl.schema_id) AS [Schema],
''Server[@Name='' + quotename(CAST(
serverproperty(N''Servername'')
AS sysname),'''''''') + '']'' + ''/Database[@Name='' + quotename(db_name(),'''''''') + '']'' + ''/Table[@Name='' + quotename(tbl.name,'''''''') + '' and @Schema='' + quotename(SCHEMA_NAME(tbl.schema_id),'''''''') + '']'' AS [Urn],
tbl.create_date AS [CreateDate],
CAST(tbl.is_memory_optimized AS bit) AS [IsMemoryOptimized],
CAST(CASE idx.type WHEN 5 THEN 1 ELSE 0 END AS bit) AS [HasClusteredColumnStoreIndex],
CAST(tbl.is_remote_data_archive_enabled AS bit) AS [RemoteDataArchiveEnabled],
tbl.temporal_type AS [TemporalType],
CAST(CASE WHEN ''PS''=dsidx.type THEN 1 ELSE 0 END AS bit) AS [IsPartitioned],
CAST(
ISNULL((SELECT 1 from sys.all_columns
WHERE object_id = tbl.object_id
AND is_sparse = 1), 0)
AS bit) AS [HasSparseColumn]
FROM
sys.tables AS tbl
LEFT OUTER JOIN sys.periods as periods ON periods.object_id = tbl.object_id
LEFT OUTER JOIN sys.tables as historyTable ON historyTable.object_id = tbl.history_table_id
INNER JOIN sys.indexes AS idx ON
idx.object_id = tbl.object_id and (idx.index_id < @_msparam_0 or (tbl.is_memory_optimized = 1 and idx.index_id = (select min(index_id) from sys.indexes where object_id = tbl.object_id)))
LEFT OUTER JOIN sys.data_spaces AS dsidx ON dsidx.data_space_id = idx.data_space_id
WHERE
(CAST(
case
when tbl.is_ms_shipped = 1 then 1
when (
select
major_id
from
sys.extended_properties
where
major_id = tbl.object_id and
minor_id = 0 and
class = 1 and
name = N''microsoft_database_tools_support'')
is not null then 1
else 0
end
AS bit)[email protected]_msparam_1 and [email protected]_msparam_2 and CAST(tbl.is_memory_optimized AS bit)[email protected]_msparam_3 and [email protected]_msparam_4 and CAST(tbl.is_external AS bit)[email protected]_msparam_5)
ORDER BY
[Schema] ASC,[Name] ASC',N'@_msparam_0 nvarchar(4000),@_msparam_1 nvarchar(4000),@_msparam_2 nvarchar(4000),@_msparam_3 nvarchar(4000),@_msparam_4 nvarchar(4000),@_msparam_5 nvarchar(4000)',@_msparam_0=N'2',@_msparam_1=N'0',@_msparam_2=N'0',@_msparam_3=N'0',@_msparam_4=N'0',@_msparam_5=N'0'
EDIT:回避策として、私はここを私のテーブルにアクセスすることができますSSMS 2014を再インストールしました。
ランダムなトレース不可能なエラーが発生すると、通常はトリガーになります(ここでは何も編集していませんが)。データベース・トリガーはありますか?オブジェクトブラウザを使用して見つけることができない場合は、おそらく 'sys.triggers'を使用することができます –
@ nick-mcdermaid:問題のデータベースに対して** select * from sys.triggers **を実行しました。 。 – j3r0
私は答えがありません - 私はちょうどものを提案するつもりです。私の次の提案は、SQLプロファイラでクエリをトレースしています。 –