具有动态生成的视图名称的拖放视图语法

时间:2018-06-27 04:48:28

标签: sql

我正在处理一个存储过程,其中有带有动态生成的视图名称的拖放视图。

但是我的语法存在一些问题,它引发了错误。

SET @vname = 'test.V_' + @sourceTable + '_Default';

IF OBJECT_ID(@vname) IS NOT NULL
BEGIN
    DROP VIEW @vname; ---- this is where its throwing error
END;

1 个答案:

答案 0 :(得分:3)

我会使用动态SQL:

echo date('d/m/Y', strtotime('2018-06-17T09:07:00Z'));

如果您拥有SQL Server 2016+,则可以使用SET @vname = 'test.' + QUOTENAME('V_'+ @sourceTable + '_Default'); DECLARE @sql NVARCHAR(MAX) = 'DROP VIEW ' + @vname; IF OBJECT_ID(@vname) IS NOT NULL BEGIN EXEC(@sql); END;

IF EXISTS

DBFiddle Demo