【问题标题】:creating a Database's Collation from variable从变量创建数据库的排序规则
【发布时间】:2016-11-02 12:50:50
【问题描述】:

我需要通过变量创建排序规则或在创建数据库后将其更改为 所以试试这个:

USE master;  
GO  
IF DB_ID (N'DATA') IS NOT NULL  
DROP DATABASE DATA;  
GO  
DECLARE @COLLATE Nvarchar(50) SET  @COLLATE ='Latin1_General_100_CS_AS_SC'
CREATE DATABASE DATA  
COLLATE Latin1_General_100_CS_AS_SC;  
--COLLATE @COLLATE; 
GO 

SELECT name, collation_name  
FROM sys.databases  
WHERE name = N'DATA';  

--or
ALTER DATABASE [DATA]  COLLATE @COLLATE 

SELECT name, collation_name  
FROM sys.databases  
WHERE name = N'DATA';  

【问题讨论】:

  • 最好的选择是动态 SQL
  • @P.Kouvarakis 你能解释一下怎么做吗

标签: sql sql-server tsql collation


【解决方案1】:

这是一个你可以使用的 SQL 脚本

USE master;  
GO  
IF DB_ID (N'DATA') IS NOT NULL  
DROP DATABASE DATA;  
GO  
DECLARE @COLLATE Nvarchar(50) 
SET @COLLATE ='Latin1_General_100_CS_AS_SC'

DECLARE @SQL nvarchar(max)
set @SQL = 'CREATE DATABASE DATA COLLATE ' + @COLLATE; 
exec sp_executeSQL @SQL

请小心,因为它运行 DROP 数据库命令

有关building dynamic SQL 的更多信息,您可以查看提到的文章

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-16
    • 2012-12-03
    • 1970-01-01
    • 2013-08-05
    • 2012-05-04
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    相关资源
    最近更新 更多