标签: t-sql

将列值连接到逗号分隔列表中

什么是格式化输出的TSQL语法,以便列值显示为字符串,用逗号分隔.

例如,我的表CARS具有以下内容:

CarID    CarName  
----------------
    1    Porsche  
    2    Mercedes  
    3    Ferrari  
Run Code Online (Sandbox Code Playgroud)

我如何获得汽车名称: Porsche, Mercedes, Ferrari

t-sql sql-server

58
推荐指数
8
解决办法
12万
查看次数

如何从查询中返回SQL数据类型?

我有一个SQL查询,它查询我不需要也不想理解的巨大数据库(如数百个具有难以读取的名称的表,如CMM-CPP-FAP-ADD)数据库.此查询的结果需要存储在临时表中以提供报告.

我需要创建临时表,但是要查看数百个视图/表以查找此处表示的数据类型,我不得不怀疑是否有更好的方法来构造此表.

任何人都可以建议我如何使用任何SQL Server 2008工具来划分我的SQL 2000数据库中的源数据类型?

作为一般示例,我想通过以下查询来了解:

SELECT Auth_First_Name, Auth_Last_Name, Auth_Favorite_Number 
FROM Authors
Run Code Online (Sandbox Code Playgroud)

而不是实际的结果,我想知道:

Auth_First_Name is char(25)
Auth_Last_Name is char(50)
Auth_Favorite_Number is int
Run Code Online (Sandbox Code Playgroud)

我对约束不感兴趣,我真的只想知道数据类型.

sql t-sql sql-server sql-server-2008

58
推荐指数
8
解决办法
20万
查看次数

在SQL Server上使用不同的排序规则在两个数据库之间进行连接并获取错误

我知道,我知道我在问题中写的内容我不应该感到惊讶.但我的情况是继续在继承的POS系统上工作,我的前任显然不知道JOIN,所以当我查看其中一个加载60秒的内部页面时,我发现它很快,将这8个查询重写为一个查询JOINs情况.问题是,除了不了解JOIN之外,他似乎也对多个数据库感到惊讶并且惊讶,他们使用不同的排序规则.事实上,我们使用所有"正常"的拉丁字符,说英语的人会考虑整个字母表,这整个事情将在几个月内不再使用,所以我只需要一个bandaid.

简而言之,我需要某种方法来转换为单个排序规则,因此我可以比较两个数据库中的两个字段.

确切的错误是:

无法在等于操作中解决"SQL_Latin1_General_CP850_CI_AI"和"SQL_Latin1_General_CP1_CI_AS"之间的排序规则冲突.

t-sql sql-server collation

58
推荐指数
2
解决办法
12万
查看次数

SQL Server FOR EACH循环

我有以下SQL查询:

DECLARE @MyVar datetime = '1/1/2010'    
SELECT @MyVar
Run Code Online (Sandbox Code Playgroud)

这自然会返回'2010年1月1日'.

我想要做的是有一个日期列表,比如说:

1/1/2010
2/1/2010
3/1/2010
4/1/2010
5/1/2010
Run Code Online (Sandbox Code Playgroud)

然后我想通过数字FOR FOR EACH并运行SQL Query.

像(伪代码)的东西:

List = 1/1/2010,2/1/2010,3/1/2010,4/1/2010,5/1/2010

For each x in List
do
  DECLARE @MyVar datetime = x

  SELECT @MyVar
Run Code Online (Sandbox Code Playgroud)

所以这会回来: -

1/1/2010 2/1/2010 3/1/2010 4/1/2010 5/1/2010

我希望这将数据作为一个结果集而不是多个结果集返回,因此我可能需要在查询结束时使用某种联合,因此循环的每次迭代都会联合到下一个结果集.

编辑

我有一个接受'到期'参数的大型查询,我需要运行24次,每次都需要能够提供特定的日期(这些日期将是动态的)我想避免使用union alls重复我的查询24次,就好像我需要回来添加额外的列一样,这将是非常耗时的.

sql t-sql sql-server

58
推荐指数
5
解决办法
45万
查看次数

不喜欢和喜欢不会返回相反的结果

我有一张包含200条记录的表格,其中10条记录的文字包含"TAX"字样.

当我执行时

Select * from tbl1 WHERE [TextCol] LIKE '%TAX%'
Run Code Online (Sandbox Code Playgroud)

然后我正确地得到了这10条记录的结果集.

但是,当我试图排除那些记录

Select * from tbl1 WHERE [TextCol] NOT LIKE '%TAX%'
Run Code Online (Sandbox Code Playgroud)

它仅返回100条记录,而不是190条记录.

sql t-sql sql-server sql-like

58
推荐指数
2
解决办法
5253
查看次数

连接到另一个SQL Server的T-SQL语法是什么?

如果我需要将存储过程(SP)从一个SQL Server复制到另一个SQL Server,我右键单击SSMS中的SP并选择Script Stored Procedure as> CREATE to> New Query Editor Window.然后我通过右键单击该窗口并选择Connection> Change Connection ...然后选择新服务器和F5以在新服务器上运行create来更改连接.

所以我的问题是"连接到另一个SQL Server的T-SQL语法是什么?" 这样我就可以将它粘贴到创建脚本的顶部,然后运行F5来运行它,它将切换到新服务器并运行创建脚本.

在输入问题的同时,我意识到,如果我给你的背景是我正在尝试做的事情,那么你可能会想出一个更快更好的方法来实现这个目标.

t-sql sql-server ssms stored-procedures

57
推荐指数
5
解决办法
18万
查看次数

DROP ... CREATE vs ALTER

在创建存储过程,视图,函数等时,最好对对象执行DROP ... CREATE或ALTER吗?

我已经看过许多"标准"文件,说明要做DROP ... CREATE,但我看到了许多提倡ALTER方法的评论和论据.

ALTER方法保留了安全性,而我听说DROP ... CREATE方法在第一次执行时强制重新编译整个SP而不仅仅是一个语句级别的重新编译.

有人可以告诉我,如果使用一个优于另一个有其他优点/缺点吗?

sql t-sql sql-server

57
推荐指数
4
解决办法
3万
查看次数

TransactSQL运行另一个TransactSQL脚本

我有10个transact SQL脚本,每个脚本创建一个表并用数据填充它.

我正在尝试创建一个主sql脚本,它将运行其他10个脚本中的每一个.

有没有办法用TSQL/TRANSACTSQL为Microsoft SQL Server 2008从当前的tsql脚本中执行另一个tsql脚本?

这旨在通过SQL Server Management Studio(SSMS)运行.

谢谢!

sql t-sql sql-server sql-server-2008

57
推荐指数
5
解决办法
7万
查看次数

如何在SQL Server Management Studio中查看存储过程代码

我是SQL Server的新手.我通过SQL Server Management Studio登录到我的数据库.

我有一个存储过程列表.如何查看存储过程代码?

右键单击存储过程没有任何选项view contents of stored procedure.

谢谢.

t-sql sql-server ssms

57
推荐指数
7
解决办法
19万
查看次数

应该使用什么样的数据类型来存储哈希值?

据我所知,基于SQL Server中的不同数据类型,哈希值会有所不同.一个支持Unicode另一个不....所以(也整理)

我使用char(32)作为数据类型,但输出很奇怪.用这个

select HASHBYTES('MD5','MD5Text')
Run Code Online (Sandbox Code Playgroud)

给出这个输出:

0xA891DB2DA259280A66FD5F35201CAB6A
Run Code Online (Sandbox Code Playgroud)

什么时候

declare @h char(32)
select @h=HASHBYTES('MD5','MD5Text')
select @h,LEN(@h)
Run Code Online (Sandbox Code Playgroud)

输出:

Ё'Ы-ўY(fэ_5«j

所以我是SQL Server的新手.
请问任何人,请告诉我应该用什么数据类型来存储哈希?

sql t-sql sql-server sql-server-2008

57
推荐指数
1
解决办法
4万
查看次数