在转换失败的情况下,T-SQL中是否有一种方法可以将nvarchar转换为int并返回默认值或NULL?
我们有一个旧的SQL表,SQL Server 2000使用了近10年.
在这里面,我们的员工徽章号码存储为char(6)从000001到999999.
我现在正在编写一个Web应用程序,我需要存储员工徽章编号.
在我的新表,我可以走捷径,并复制旧表,但是我希望有更好的数据传输,更小的尺寸等,通过简单地存储int从价值观1到999999.
在C#中,我可以使用快速格式化int徽章编号的值
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
Run Code Online (Sandbox Code Playgroud)
我如何修改这个简单的SQL查询以格式化返回的值?
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
Run Code Online (Sandbox Code Playgroud)
如果EmployeeID是7135,则应返回此查询007135.
我正在尝试测试是否存在给定的默认约束.我不想使用sysobjects表,但更标准的INFORMATION_SCHEMA.
我之前用它来检查表和主键约束,但我没有看到任何地方的默认约束.
他们不在吗?(我正在使用MS SQL Server 2000).
编辑:我希望得到约束的名称.
我有下表A:
id
----
1
2
12
123
1234
Run Code Online (Sandbox Code Playgroud)
我需要id用零左键填充值:
id
----
0001
0002
0012
0123
1234
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
是否可以在TSQL中解析JSON?我不是要创建一个JSON字符串,我的意思是解析作为参数传入的json字符串.
在MySQL中,您可以使用语法
DELETE t1,t2
FROM table1 AS t1
INNER JOIN table2 t2 ...
INNER JOIN table3 t3 ...
Run Code Online (Sandbox Code Playgroud)
我如何在SQL Server中执行相同的操作?
在SQL Server 2008中,我希望将datetime列四舍五入到最接近的小时和最近的分钟,最好是2008年的现有函数.
对于此列值2007-09-22 15:07:38.850,输出将如下所示:
2007-09-22 15:08 -- nearest minute
2007-09-22 15 -- nearest hour
Run Code Online (Sandbox Code Playgroud) 有人能解释一下TSQL中的COALESCE功能是如何工作的吗?语法如下
COALESCE(x,y)
关于此功能的MSDN文档非常模糊
我有一个已删除的文件存档数据库,它存储了已删除文件的ID,我希望管理员能够恢复该文件(以及链接文件的相同ID).我不想将identity_insert从整个表中删除,因为一个增量很有效.在我的插入TBL_Content存储过程中,我有类似的东西
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
SET IDENTITY_INSERT tbl_content ON
GO
ALTER procedure [dbo].[spInsertDeletedIntoTBLContent]
@ContentID int,
...insert command...
SET IDENTITY_INSERT tbl_content OFF
Run Code Online (Sandbox Code Playgroud)
但我一直得到同样的错误:
当IDENTITY_INSERT设置为OFF时,无法在表'TBL_Content'中为标识列插入显式值.
有帮助吗?