我需要从sql视图创建一个表结构。
我使用Azure SQL
CREATE TABLE ProvidersByNameOrLocation
AS
(
SELECT STRING_AGG(CONCAT(C.name, ' ', Y.name, ' (', Y.max_length, ') ', IIF(C.is_nullable = 1, '', 'NOT '), 'NULL'), ', ')
FROM SYS.all_columns C
INNER JOIN SYS.all_objects T
ON C.object_id = T.object_id
INNER JOIN sys.types Y
ON C.system_type_id = Y.system_type_id
WHERE T.name = 'tableName'
)
答案 0 :(得分:1)
SQL Server不支持此Oracle语法。因此,您可能必须手动创建表,然后使用INSERT INTO ... SELECT
填充它:
CREATE TABLE ProvidersByNameOrLocation (some_col varchar(200));
INSERT INTO ProvidersByNameOrLocation (some_col)
SELECT STRING_AGG(CONCAT(C.name, ' ', Y.name, ' (', Y.max_length, ') ', IIF(C.is_nullable = 1, '', 'NOT '), 'NULL'), ', ')
FROM SYS.all_columns C
INNER JOIN SYS.all_objects T
ON C.object_id = T.object_id
INNER JOIN sys.types Y
ON C.system_type_id = Y.system_type_id
WHERE T.name = 'tableName';