【发布时间】:2017-08-03 11:10:00
【问题描述】:
我在 Visual Studio 中创建了 Sql Server 数据库项目,我想知道是否可以使用这样的东西
预部署脚本
:setvar Environment Production
部署后脚本
IF '$(Environment)' = 'Production'
BEGIN
ALTER VIEW [dbo].[vwTable]
AS
SELECT Col1, Col2 FROM Production.database.dbo.Table1
GO
END
ELSE
BEGIN
ALTER VIEW [dbo].[vwTable]
AS
SELECT Col2, Col3, Col4 FROM LinkedServer.Development.database.dbo.Table2
GO
END
错误是:Alter view must be the only statement in the batch.
或更简单的版本
ALTER VIEW [dbo].[vwTable]
AS
IF '$(Environment)' = 'Production'
SELECT Col1, Col2 FROM Production.database.dbo.Table1
ELSE
SELECT Col2, Col3, Col4 FROM LinkedServer.Development.database.dbo.Table2
GO
错误是:Incorrect syntax near IF. Expecting Select or With
任何想法,你的方法是什么?
【问题讨论】:
-
@Mufflix,您不能在 SQL Server
VIEW中使用IF条件。 -
@Venu 我知道,但是如何在 SQLCMD 中使用条件?因为我对生产和开发有不同的看法。
-
你是说你有
VIEWSQLCMD模式的SQL Server,它必须根据环境来决定执行哪个语句?我不相信。 -
@Venu 为什么不呢,不然怎么办?
-
你无法用视图解决这个问题。您可能需要创建过程。我在下面添加了详细信息作为答案。
标签: sql-server visual-studio tsql deployment sqlcmd