Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对某些数据库名称的SQL查询_Sql_Sql Server - Fatal编程技术网

对某些数据库名称的SQL查询

对某些数据库名称的SQL查询,sql,sql-server,Sql,Sql Server,我目前在一台服务器上有许多数据库。我只想在以“AccountsLive”结尾的数据库上运行查询 并不是所有的都以这个结尾,所以我想做一个通配符%AccountsLive查询,而不是在('master','tempdb','model','msdb')中使用WHERE-Not-name('master','tempdb','model','msdb') 这可能吗 以下是我目前拥有的代码: DECLARE @Sql NVARCHAR(MAX) = NULL; SELECT @Sql = COAL

我目前在一台服务器上有许多数据库。我只想在以“AccountsLive”结尾的数据库上运行查询

并不是所有的都以这个结尾,所以我想做一个通配符%AccountsLive查询,而不是在('master','tempdb','model','msdb')中使用
WHERE-Not-name('master','tempdb','model','msdb')

这可能吗

以下是我目前拥有的代码:

DECLARE @Sql NVARCHAR(MAX) = NULL;

SELECT  @Sql = COALESCE(@Sql + ' UNION ALL ' + CHAR(13) + CHAR(10), '' ) + 'SELECT * FROM ' + QUOTENAME([name]) + '.SL_TRANSACTIONS'
FROM    sys.databases
WHERE   not [name] in ('master', 'tempdb', 'model', 'msdb');


EXECUTE ( @Sql );

您可以将表名列表放入表变量中,并相应地查询它们。我还将模式添加为
dbo
,以使名称成为由三部分组成的名称,假设表位于
dbo
模式中

DECLARE@table表(dbname sysname)
插入@table(dbname)
从sys.databases中选择名称,其中的名称类似于“%AccountsLive”
声明@Sql NVARCHAR(MAX)=NULL;
选择@Sql=COALESCE(@Sql+'UNION ALL'+CHAR(13)+CHAR(10),'')+'SELECT*FROM'+QUOTENAME(dbname)+'.dbo.SL_事务'
来自@table
EXEC(@Sql);

您可以将表名列表放入表变量中,并相应地查询它们。我还将模式添加为
dbo
,以使名称成为由三部分组成的名称,假设表位于
dbo
模式中

DECLARE@table表(dbname sysname)
插入@table(dbname)
从sys.databases中选择名称,其中的名称类似于“%AccountsLive”
声明@Sql NVARCHAR(MAX)=NULL;
选择@Sql=COALESCE(@Sql+'UNION ALL'+CHAR(13)+CHAR(10),'')+'SELECT*FROM'+QUOTENAME(dbname)+'.dbo.SL_事务'
来自@table
EXEC(@Sql);

你有没有尝试过
像“%AccountsLive”这样的[name]的位置?没有,我没有尝试,因为我是个白痴!!非常感谢。你有没有试过像“%AccountsLive”这样的[name]的地方?
?没有,我没有试过,因为我是个白痴!!非常感谢。太好了,谢谢!实际上,我在这个问题上遇到了一个错误:
无法执行varchar值到varchar的隐式转换,因为在UNION ALL运算符中,由于“SQL\u Latin1\u General\u CP1\u CI\u AS”和“Latin1\u General\u CI\u AS”之间的排序冲突,无法解决该值的排序问题。
有什么想法吗?@PeterK,你能单独提个问题吗。在不同的数据库中,不同的排序规则似乎存在一些问题。请填写查询并添加单独的问题。这是不同的错误。啊,对不起,我想可能与此有关-可以@彼得,没问题。当然,太好了,谢谢你!实际上,我在这个问题上遇到了一个错误:
无法执行varchar值到varchar的隐式转换,因为在UNION ALL运算符中,由于“SQL\u Latin1\u General\u CP1\u CI\u AS”和“Latin1\u General\u CI\u AS”之间的排序冲突,无法解决该值的排序问题。
有什么想法吗?@PeterK,你能单独提个问题吗。在不同的数据库中,不同的排序规则似乎存在一些问题。请填写查询并添加单独的问题。这是不同的错误。啊,对不起,我想可能与此有关-可以@彼得,没问题。当然