标签: sql-server

使用Float或Decimal作为会计应用程序的美元金额?

我们正在用VB.NET和SQL Server重写我们的旧会计系统.我们引入了一个新的.NET/SQL程序员团队来进行重写.大多数系统已经使用Floats完成了Dollar数量.我编程的遗留系统语言没有Float,所以我可能会使用Decimal.

你有什么建议?

Float或Decimal数据类型应该用于美元金额吗?

两者的优点和缺点有哪些?

在我们的日常scrum中提到的一个骗局是,当你计算一个返回超过两个小数位的结果的金额时,你必须要小心.听起来你必须将金额四舍五入到小数点后两位.

另一个Con是所有显示和打印金额必须有一个显示两个小数位的格式声明.我注意到有几次没有这样做,金额看起来不正确.(即10.2或10.2546)

专家是Float只占用磁盘上的8个字节,其中Decimal占用9个字节(十进制12,2)

vb.net sql-server accounting database-design currency

76
推荐指数
9
解决办法
4万
查看次数

如何更改Sql Server中十进制列的精度?

有没有办法改变Sql Server中现有十进制列的精度?

sql-server

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

drop table和truncate table之间的区别?

我有一些表,我作为报告汇总的一部分构建.之后我根本不需要它们.有人提到截断它们会更快.

sql sql-server sybase

76
推荐指数
6
解决办法
18万
查看次数

在SQL Server中强制查询超时

我们遇到了一个代码块的问题,这个代码块在数据库缓慢的情况下响应很差(它在查询超时时瘫痪).我们已经创建了一个补丁,并且正在通过回归运行它.

我们不能超时.我已经从SQL Mgmt Studio打开了一个事务并更新了每一行来锁定它们,但这并不会导致INSERT超时(这就是我需要的).

我可以通过T-SQL轻松获得表级锁吗?或者我必须在主人身边摆弄?或者我可以轻松强制超时而不锁定?任何输入都表示赞赏.

sql-server testing timeout locking

76
推荐指数
4
解决办法
5万
查看次数

使用JPA创建带有保留字名称的字段

@Column(name="open")
Run Code Online (Sandbox Code Playgroud)

使用sqlserver方言与hibernate.

[SchemaUpdate] Unsuccessful: create table auth_session (id numeric(19,0) identity not null, active tinyint null, creation_date datetime not null, last_modified datetime not null, maxidle int null, maxlive int null, open tinyint null, sessionid varchar(255) not null, user_id numeric(19,0) not null, primary key (id), unique (sessionid))
[SchemaUpdate] Incorrect syntax near the keyword 'open'.
Run Code Online (Sandbox Code Playgroud)

我希望hibernate在创建表时使用带引号的标识符.

关于如何处理这个问题的任何想法...除了重命名字段?

java sql-server orm hibernate jpa

76
推荐指数
6
解决办法
4万
查看次数

T-SQL是否具有连接字符串的聚合函数?

可能重复:
SQL Server 2000中的内嵌类型函数?
连接行值T-SQL

我有一个我正在查询的视图,看起来像这样:

BuildingName    PollNumber
------------    ----------
Foo Centre      12        
Foo Centre      13
Foo Centre      14
Bar Hall        15
Bar Hall        16
Baz School      17
Run Code Online (Sandbox Code Playgroud)

我需要编写一个将BuildingNames组合在一起的查询,并显示一个PollNumbers列表,如下所示:

BuildingName    PollNumbers
------------    -----------
Foo Centre      12, 13, 14
Bar Hall        15, 16
Baz School      17
Run Code Online (Sandbox Code Playgroud)

我怎么能在T-SQL中做到这一点?我宁愿不为此写一个存储过程,因为它看起来有点矫枉过正,但我​​不是一个数据库人.看起来像SUM()或AVG()这样的聚合函数是我需要的,但我不知道T-SQL是否有一个.我正在使用SQL Server 2005.

t-sql sql-server group-by sql-server-2005 aggregate-functions

76
推荐指数
2
解决办法
8万
查看次数

检索SQL Server中VARCHAR列的最大长度

我想VARCHAR在SQL Server表的特定列中找到最长的.

这是一个例子:

ID = INT IDENTITY
DESC = VARCHAR(5000)

ID | Desc
---|-----
1  | a
2  | aaa
3  | aa
Run Code Online (Sandbox Code Playgroud)

什么是返回3的SQL?由于最长的值是3个字符?

sql sql-server maxlength string-length

76
推荐指数
8
解决办法
21万
查看次数

从bcp客户端收到colid 6的无效列长度

我想从c#代码批量上传csv文件数据到sql server 2005,但我遇到以下错误 -

从bcp客户端收到colid 6的无效列长度.

批量复制写入数据库服务器时

.net c# database sql-server sql-server-2005

76
推荐指数
3
解决办法
9万
查看次数

记录在主数据库中的数据库所有者SID与数据库所有者SID不同

当我尝试将tSQLt安装到现有数据库时,我收到以下错误:

记录在主数据库中的数据库所有者SID与记录在数据库''中的数据库所有者SID不同.您应该通过使用ALTER AUTHORIZATION语句重置数据库''的所有者来纠正这种情况.

sql-server clrstoredprocedure tsqlt

76
推荐指数
5
解决办法
8万
查看次数

SQL - 将varchar数据类型转换为日期时间数据类型会导致超出范围的值

运行SQL到我的数据类型值从转换的时候,我一直得到以下错误varchardatetime.

消息242,级别16,状态3,行1将varchar数据类型转换为日期时间数据类型导致超出范围的值.

我已经检查了数据并且看不到任何奇怪的东西:执行以下检查并且所有返回都没有结果

SELECT [Date] from table where [DATe] is null
SELECT [Date] from table where [DATe] = ''
SELECT [Date] from table where LEN([date])> 10
SELECT [Date] from table where LEN([date])< 10
SELECT top 100 [Date] , SUBSTRING([date],4,2) from [table where convert(int, SUBSTRING([date],4,2)) < 1 or convert(int, SUBSTRING([date],4,2)) > 12
SELECT top 100 [Date] , SUBSTRING([date],1,2) from table where convert(int, SUBSTRING([date],4,2)) < 1 or convert(int, SUBSTRING([date],4,2)) > 31
Run Code Online (Sandbox Code Playgroud)

还有什么值得关注的东西,可能值得指点或帮助解决这个问题吗?似乎无法深究它.

t-sql sql-server datetime

76
推荐指数
6
解决办法
50万
查看次数