IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'model')
BEGIN
GOTO CREATESCEDB;
END
ELSE
BEGIN
GOTO UPDATESCEDB;
END
CREATESCEDB:
PRINT 'Create'
USE [master]
GO
CREATE DATABASE [model]
GO
GOTO ENDOFSCRIPT
UPDATESCEDB:
PRINT 'Update'
GOTO ENDOFSCRIPT
ENDOFSCRIPT:
PRINT 'END'
在上面的SQL查询,如果我删除GOTO语句无法正常运行在T-SQL
USE [master]
GO
CREATE DATABASE [model]
GO
然后正常工作,否则不行。 查询有
USE [master]
GO
CREATE DATABASE [model]
GO
始终运行CREATE DATABASE [model]
。不知道为什么。
'GO'终止批次。跨越批次不能识别“goto”标签。 –
但是,为什么光标一直到CREATESCEDB部分?它应该去UPDATESCEDB。不是吗? – Ramakant
你可以建议任何其他方式来实现sql中的相同功能?我不想有两个单独的文件来创建和更新我的数据库。 – Ramakant