Skip to main content

views

Creates, updates, deletes, gets or lists a views resource.

Overview

Nameviews
TypeResource
Idsnowflake.view.views

Fields

NameDatatypeDescription
namestringName of the view
columnsarrayThe columns of the view
commentstringuser comment associated to an object in the dictionary
created_onstringDate and time when the view was created.
database_namestringDatabase in which the view is stored
kindstringKind of the view, permanent (default) or temporary
ownerstringRole that owns the view
owner_role_typestringThe type of role that owns the view
querystringQuery used to create the view
recursivebooleanWhether or not this view can refer to itself using recursive syntax withot requiring a CTE (common table expression)
schema_namestringSchema in which the view is stored
securebooleanWhether or not this view is secure

Methods

NameAccessible byRequired ParamsOptional ParamsDescription
fetch_viewSELECTdatabase_name, name, schema_name, endpoint-Fetch a view
list_viewsSELECTdatabase_name, schema_name, endpointlike, startsWith, showLimit, fromName, deepList views
create_viewINSERTdatabase_name, schema_name, data__columns, data__name, data__query, endpointcreateMode, copyGrantsCreate a view
delete_viewDELETEdatabase_name, name, schema_name, endpointifExistsDelete a view

Optional Parameter Details
NameDescriptionTypeDefault
copyGrantsQuery parameter to enable copy grants when creating the object.booleanfalse
createModeQuery parameter allowing support for different modes of resource creation. Possible values include: - errorIfExists: Throws an error if you try to create a resource that already exists. - orReplace: Automatically replaces the existing resource with the current one. - ifNotExists: Creates a new resource when an alter is requested for a non-existent resource.stringerrorIfExists
deepOptionally includes dependency information of the view.boolean-
fromNameQuery parameter to enable fetching rows only following the first row whose object name matches the specified string. Case-sensitive and does not have to be the full name.string-
ifExistsQuery parameter that specifies how to handle the request for a resource that does not exist: - true: The endpoint does not throw an error if the resource does not exist. It returns a 200 success response, but does not take any action on the resource. - false: The endpoint throws an error if the resource doesn't exist.booleanfalse
likeQuery parameter to filter the command output by resource name. Uses case-insensitive pattern matching, with support for SQL wildcard characters.string-
showLimitQuery parameter to limit the maximum number of rows returned by a command.integer-
startsWithQuery parameter to filter the command output based on the string of characters that appear at the beginning of the object name. Uses case-sensitive pattern matching.string-

SELECT examples

List views

SELECT
name,
columns,
comment,
created_on,
database_name,
kind,
owner,
owner_role_type,
query,
recursive,
schema_name,
secure
FROM snowflake.view.views
WHERE database_name = '{{ database_name }}'
AND schema_name = '{{ schema_name }}'
AND endpoint = '{{ endpoint }}';

INSERT example

Use the following StackQL query and manifest file to create a new views resource.

/*+ create */
INSERT INTO snowflake.view.views (
data__name,
data__secure,
data__kind,
data__recursive,
data__columns,
data__comment,
data__query,
database_name,
schema_name,
endpoint
)
SELECT
'{{ name }}',
'{{ secure }}',
'{{ kind }}',
'{{ recursive }}',
'{{ columns }}',
'{{ comment }}',
'{{ query }}',
'{{ database_name }}',
'{{ schema_name }}',
'{{ endpoint }}'
;

DELETE example

Deletes the specified views resource.

/*+ delete */
DELETE FROM snowflake.view.views
WHERE database_name = '{{ database_name }}'
AND name = '{{ name }}'
AND schema_name = '{{ schema_name }}'
AND endpoint = '{{ endpoint }}';