常用函数记录

DateAdd

在日期中添加或减去指定的时间间隔:

1
DATEADD(day/month.., number, date)

getdate()

获取系统当前时间。

STUFF 结合 FOR XML PATH 拼接字符串

如果不是 varchar 类型,先转换:CAST(xx AS VARCHAR)

1
2
3
4
5
6
7
8
SELECT
id,
[text] = '[' + STUFF((
SELECT
',{"bizDate":"' + CAST(business_date AS VARCHAR) + '","pkgCode":"' + [package_code] + '","guestType":"' + [guest_type] + '","count":' + CAST(COUNT AS VARCHAR) + ',"calcDesc":null}'
FROM
kpc.dbo.reservation_package_daily t
-- 需要补充完整的 FOR XML PATH 语句

解决 SQL Server 阻止访问 'Ad Hoc Distributed Queries' 组件的问题

开启 Ad Hoc Distributed Queries 组件

在 SQL 查询编辑器中执行如下语句:

1
2
3
4
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;

关闭 Ad Hoc Distributed Queries 组件

在 SQL 查询编辑器中执行如下语句:

1
2
3
4
EXEC sp_configure 'Ad Hoc Distributed Queries', 0;
RECONFIGURE;
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE;

使用 OPENDATASOURCE 进行远程链接

1
2
3
4
SELECT * FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=127.0.0.1;User ID=sa;Password=root'
).xxx.dbo.xxx;

不同服务器数据库之间的数据操作——创建链接服务器

1
2
3
EXEC sp_addlinkedserver   'ITSV', '', 'SQLOLEDB', 'ip';
EXEC sp_addlinkedsrvlogin 'ITSV', 'false', NULL, 'user', 'pass';
SELECT * FROM ITSV.库名.dbo.xxx;