Вот мой запрос, это 2014 Adventure works.
DECLARE @l_RunSQL VARCHAR(MAX);
SELECT @l_RunSQL = COALESCE(@l_RunSQL + ' UNION ALL SELECT * FROM [', 'SELECT * FROM [') + TABLE_SCHEMA +'].['+ TABLE_NAME+']'
FROM INFORMATION_SCHEMA.TABLES
WHERE [TABLE_TYPE] = 'BASE TABLE'
AND [TABLE_NAME] LIKE 'Address';
EXEC (@l_RunSQL)
WITH RESULT SETS
(
(
[AddressID] [INT],
[AddressLine1] [NVARCHAR](60),
[AddressLine2] [NVARCHAR](60),
[City] [NVARCHAR](30),
[StateProvinceID] [INT],
[PostalCode] [NVARCHAR](15),
[SpatialLocation] [GEOGRAPHY],
[rowguid] [UNIQUEIDENTIFIER],
[ModifiedDate] [DATETIME]
)
);
Я могу запустить его в SSMS и получить содержимое таблицы Person.Address
по желанию.
В C # я создаю узел соединения, а затем командный узел и пытаюсь выполнить запрос следующим образом:
using (var reader = command.ExecuteReader(CommandBehavior.SchemaOnly))
{
schemaTable = reader.GetSchemaTable();
}
И результаты чтения возвращаются пустыми.Почему эта команда действительна в SSMS, но не использует C #?
Соединение имеет тип System.Data.SqlClient.SqlConnection
, а команда имеет тип System.Data.SqlClient.SqlCommand
.
Любая помощь будет принята с благодарностью