我正在处理一个存储过程,其中有带有动态生成的视图名称的拖放视图。
但是我的语法存在一些问题,它引发了错误。
SET @vname = 'test.V_' + @sourceTable + '_Default';
IF OBJECT_ID(@vname) IS NOT NULL
BEGIN
DROP VIEW @vname; ---- this is where its throwing error
END;
答案 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