将数据库排序规则读入 SQL 服务器中的变量时出现问题
Problem in reading the database collation into a variable in SQL Server
我遇到过无法将变量的值设置为查询结果的奇怪事情。查询正在读取数据库的排序规则并自行正常工作:
SELECT collation_name
FROM sys.databases
WHERE [name] = 'my_DB';
结果是这样的:
SQL_Latin1_General_CP1_CI_AS
但是当我想把结果放在一个变量中时,我没有得到结果(也没有错误)
declare @DB_collation varchar(100);
set @DB_collation = (SELECT
collation_name
FROM sys.databases
WHERE name = 'my_DB')
print @DB_collation;
我可以将其他 SELECT 查询的结果设置为 varchar 变量。
方法是这样的:
declare @DB_collation varchar(100);
SELECT @DB_collation =
collation_name
FROM sys.databases
WHERE name = 'tempdb'
print @DB_collation;
将您的变量放在 select 关键字之后。
这是一个演示:
如果这不起作用,那么您可以 select 变量的值:
declare @DB_collation varchar(100);
SELECT @DB_collation =
collation_name
FROM sys.databases
WHERE name = 'tempdb'
select @DB_collation;
P.S:请在“消息”选项卡而不是“结果”选项卡中查看 PRINT 语句的结果
我遇到过无法将变量的值设置为查询结果的奇怪事情。查询正在读取数据库的排序规则并自行正常工作:
SELECT collation_name
FROM sys.databases
WHERE [name] = 'my_DB';
结果是这样的:
SQL_Latin1_General_CP1_CI_AS
但是当我想把结果放在一个变量中时,我没有得到结果(也没有错误)
declare @DB_collation varchar(100);
set @DB_collation = (SELECT
collation_name
FROM sys.databases
WHERE name = 'my_DB')
print @DB_collation;
我可以将其他 SELECT 查询的结果设置为 varchar 变量。
方法是这样的:
declare @DB_collation varchar(100);
SELECT @DB_collation =
collation_name
FROM sys.databases
WHERE name = 'tempdb'
print @DB_collation;
将您的变量放在 select 关键字之后。
这是一个演示:
如果这不起作用,那么您可以 select 变量的值:
declare @DB_collation varchar(100);
SELECT @DB_collation =
collation_name
FROM sys.databases
WHERE name = 'tempdb'
select @DB_collation;
P.S:请在“消息”选项卡而不是“结果”选项卡中查看 PRINT 语句的结果