我正在尝试创建SQL脚本以将旧数据移动到单独的数据库中。 我现在遇到的问题是我想从SELECT语句中命名数据库。
use DBName;
declare @release varchar(max)
set @release = concat('Release_',(select MetaRevision from metarevision))
select @release
if db_id(@release) is null create database @release
可悲的是,这不起作用。我收到以下错误:
Incorrect syntax near '@release'
有没有办法从Select语句命名数据库?
答案 0 :(得分:1)
感谢您的帮助。我找到了一个包含ta.speot.is和p.campbell信息的解决方案。
对于未来,这是解决方案:
use DBName;
declare @release varchar(14)
set @release = concat('Release_',(select MetaRevision from metarevision))
declare @quoted varchar(16);
set @quoted = quotename(@release);
if db_id(@release) is null exec ('create database ' + @quoted)
答案 1 :(得分:1)
你可以这样做
declare @release varchar(max)
set @release = concat('Release_','TestOst') //Replace TestOst with your metadata
select @release
if db_id(@release) is null
declare @SQL nvarchar(max)
SET @SQL = 'create database '+quotename(@release)
exec(@SQL)