我想检测MS SQL DB中以“NAV”开头的数据库。我尝试使用此代码:

DECLARE @DBName NVARCHAR(MAX);
SET @DBName = (SELECT name FROM master.dbo.sysdatabases where name LIKE '%NAV%');
EXECUTE ('USE' + @DBName);

但是我得到了错误信息:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'Database'.

知道那里有什么问题吗?

最佳答案

在USE之后放置一个空格,并在数据库名称的周围加上方括号:

DECLARE @DBName NVARCHAR(MAX);
SET @DBName = (SELECT name FROM master.dbo.sysdatabases where name LIKE '%NAV%');
EXECUTE ('USE [' + @DBName + ']');

关于sql - SQL错误-关键字 'Database'附近的语法不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44950380/

10-10 03:06