SQL查询的差异

时间:2019-03-14 14:40:14

标签: sql-server

我有一个问题。

此代码有效:

DECLARE @nameDB AS VARCHAR (max)= 'myDB'
DECLARE @sql AS VARCHAR(max)
SELECT @sql = 'USE [' + @nameDB + ']'
PRINT @sql
EXEC sp_sqlexec @sql
GRANT CONNECT TO [user]

其他代码不会(尽管执行过程没有错误):

{{1}}

我需要使用后者(或类似名称),因为我有许多数据库需要对某些用户处于只读模式。

有什么建议吗?

1 个答案:

答案 0 :(得分:-1)

尝试一下:

DECLARE @nameDB AS sysname = 'myDB'
DECLARE @sql AS VARCHAR(max)
SELECT @sql = 'USE [' + @nameDB + ']; GRANT CONNECT TO [user];'
PRINT @sql
EXEC sp_sqlexec @sql