有人可以告诉我当尝试通过链接服务器从 MS SSMS 连接到 PostgreSQL 数据库时提供程序字符串是什么样的吗?
主页
/
user-137986
Hrvoje T's questions
Hrvoje T
Asked:
2022-05-30 03:11:16 +0800 CST
我有一个日期为 varchar(不要问为什么)。我需要选择 Max(date)。但是,日期可能有误,例如 2034-34-34。我想选择有效且不大于今天的最大日期。这是 t-sql。
我试过了:
create table #tmp (
dt varchar(10)
)
insert into #tmp values ('2022-02-15'),('2034-34-34')
select max(dt) from #tmp
having isdate(max(dt))=1 and max(dt)<=current_timestamp
作为回报,我什么也得不到。
Hrvoje T
Asked:
2022-05-25 14:38:50 +0800 CST
我的本地 PC 上有一个 txt 文件。我运行连接到远程 MSSQL 的本地 Java 应用程序。现在我需要将该文本文件中的批量插入到我的数据库表中。
但是,SQL 登录无法读取我的文件。我得到:
原因:com.microsoft.sqlserver.jdbc.SQLServerException:无法批量加载,因为无法打开文件“D:/My_Files/my_file.txt”。操作系统错误代码 21(设备未准备好。)
我为“所有人”设置了 My_Files 文件夹的权限。我无法创建与 SQL 登录名相同的 Windows 用户,因为它对于 Windows 用户来说太长了。有解决办法吗?
Hrvoje T
Asked:
2019-11-25 08:16:50 +0800 CST
DECLARE @MyParam bit = 1
SELECT * FROM MyTable mt
WHERE
CASE WHEN @MyParam = 1 THEN mt.MyFK IS NULL
CASE WHEN @MyParam = 0 THEN mt.MyFK IS NOT NULL
END
如果我的参数为 1,如何编写查询以过滤 MyFK 为空的位置?它适用于简单的 CASE 和数字
WHERE mt.MyFK = (CASE WHEN @MyParam = 1 THEN 1)
但不是'IS NULL'?
Hrvoje T
Asked:
2019-06-24 11:55:20 +0800 CST
如何以“更多 sql”的方式使用联接编写此更新?有人告诉我这是奇怪的编码:
-- Updates recipient's account
UPDATE table1
SET balance = balance + @amount
WHERE accountID = @recipientID
AND -- check if a currency is the same in both accounts
(
SELECT t.CurrencyID
FROM table1 t
WHERE t.accountID = @payerID
) = (
SELECT t.CurrencyID
FROM table1
WHERE t.accountID = @recipientID
);
Hrvoje T
Asked:
2019-06-21 16:21:23 +0800 CST
在 T-SQL 中,如何做到这一点:
DECLARE @amount decimal(18,2) = 1000
UPDATE account
SET balance = balance + @amount WHERE accountID= 1;
UPDATE account
SET balance = balance - @amount WHERE accountID= 2;
在一个更新查询中以确保例如。没有人在两次更新之间更改帐户货币?当 ID = 1 的行被锁定时,我希望 ID = 2 的行也被锁定。隔离级别被读取提交。就像是:
DECLARE @amount decimal(18,2) = 1000
UPDATE account
SET balance = balance + @amount WHERE accountID= 1;
AND
SET balance = balance - @amount WHERE accountID= 2;