问题标签 [tsql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 实现 SQL 脚本的最佳方法是向数据库中所有用户表上的数据库角色授予权限?
实现一个 SQL 脚本的最佳方法是向数据库中所有用户表的数据库角色授予选择、引用、插入、更新和删除权限?
理想情况下,该脚本可以运行多次,因为新表已添加到数据库中。SQL Server Management Studio 为单个数据库对象生成脚本,但我正在寻找更多的“即发即弃”脚本。
c# - 我将使用什么代码将类似 SQL 的表达式即时转换为正则表达式?
我正在寻找将类似 SQL 的语句即时转换为等效的正则表达式,即
这样做的最佳方法是什么?
PS 我希望在 .Net Framework (C#) 上执行此操作。
sql-server - SQL Server、nvarchar(MAX) 或 ntext、image 或 varbinary?
我什么时候应该选择其中之一?空间和(全文)索引的含义是什么?
顺便说一句:我目前正在使用 SQL Server 2005 计划在接下来的几个月内升级到 2008。
谢谢
sql - 如何在 SQL Server 中创建外键?
我从来没有为 SQL Server“手工编码”过对象创建代码,而且 SQL Server 和 Postgres 之间的外键解密似乎不同。到目前为止,这是我的 sql:
当我运行查询时,我收到此错误:
消息 8139,级别 16,状态 0,第 9 行外键中的引用列数与表“question_bank”中引用的列数不同。
你能发现错误吗?
sql-server - SQL 2005 在数据库之间复制单列
我对 T-SQL 和 SQL 2005 还很陌生。我需要将一列整数从 database1 中的表导入到 database2 中的相同表(仅缺少我需要的列)。两者都是 sql 2005 数据库。我已经尝试过 Server Management Studio 中的内置导入命令,但它迫使我复制整个表。由于约束和“只读”列(无论 sql2005 中的“只读”是什么意思),这会导致错误。我只想抓取一列并将其复制到表中。
必须有一个简单的方法来做到这一点。就像是:
sql-server - SQL Server 2000 - 调试死锁
我正在寻找有关如何在 SQL Server 2000 数据库中调试和解决死锁问题的建议。有人建议我使用跟踪标志 1024 和 3605,我发现它们给了我以下信息:
1024 - 此跟踪标志返回参与死锁的锁类型和受影响的当前命令。
3605 - 此跟踪标志将跟踪输出发送到错误日志。
仍然需要发现特定的存储过程、表和索引,因此目标是使用这些跟踪标志来做到这一点。然后从那里我会更好地了解哪些索引需要调整、调整查询的锁定提示以及需要修复的潜在存储过程错误。
关于将这一切归结为常见问题的任何其他建议或快乐结局的战争故事?
tsql - T-SQL 中临时表索引的最佳使用
如果您在存储过程中创建一个临时表并希望在其上添加一个或两个索引,以提高针对它所做的任何其他语句的性能,最好的方法是什么?Sybase 是这样说的:
"创建索引时表必须包含数据。如果创建临时表并在空表上创建索引,则 Adaptive Server 不会创建柱状图和密度等列统计信息。如果在创建索引后插入数据行,优化器的统计数据不完整。”
但最近一位同事提到,如果我在与实际使用临时表的存储过程不同的存储过程中创建临时表和索引,则 Adaptive Server 优化器将能够使用它们。
总的来说,我不太喜欢增加一点价值的包装程序,所以我实际上并没有测试这个,但我想我会把问题放在那里,看看是否有人有任何其他的方法或建议?
sql - 如何在 SQL Server 数据库中列出用户定义的类型?
我需要用 枚举在SQL Server
数据库中创建的所有用户定义类型CREATE TYPE
,和/或找出它们是否已经被定义。
对于表或存储过程,我会做这样的事情:
但是我找不到用户定义类型的等价物(或合适的替代品)!我绝对看不到他们在任何地方sysobjects
。
任何人都可以启发我吗?
sql-server - 定制 SQL Server '编码' sproc - 有没有更简洁的方法?
我只是想知道在 SQL Server 2005 中是否有更好的方法来执行此操作。
实际上,我使用了一个 originator_id(0 到 99 之间的数字)和一个“next_element”(它实际上只是一个 1 到 999,999 之间的顺序计数器)。我们正在尝试从它们中创建一个 6 字符的“代码”。
originator_id 乘以一百万,然后加上计数器,得到一个介于 0 和 99,999,999 之间的数字。
然后我们将其转换为“base 32”字符串 - 一个假的 base 32,我们实际上只是使用 0-9 和 AZ,但为了清楚起见,删除了一些更令人困惑的字母数字(I、O、S、Z) .
为此,我们只需将数字除以 32 的幂,在每个阶段使用我们为每个幂得到的结果作为我们所选字符数组中字符的索引。
以前我已经让这个算法工作(在 Delphi 中),但现在我真的需要能够在 SQL Server 2005 中重新创建它。显然我没有与 Delphi 中相同的功能,但这是我的采取例行公事。它可以工作,我可以很好地生成代码(或将代码重构回它们的组件)。
但它看起来有点啰嗦,而且我不确定将除法结果选择为 int 的技巧(即,真的是强制转换)是否一定是“正确的”——这种方法是否有更好的 SQLS 方法的东西?
我并不非常关心优化,除非这种方法实际上比任何替代方法都差一个数量级(或更多)。
代码只会以小批量的方式执行,可能每 10 分钟左右生成 20 或 30 个代码。由于数字范围很大,我不想将代码预先计算到一个巨大的表格中(在任何给定的安装中,只会使用整个代码范围的一小部分)。
但是,我确信可能有一种更简洁的方法可以实现相同的结果——尤其是那些除法和减法。
任何建设性的批评、意见或建议都将受到欢迎。
sql-server - SQL Server 中的数值数据右对齐
我们都知道 T-SQL 的字符串操作功能有时还有很多不足之处......
我有一个数字字段需要在 T-SQL 中作为右对齐文本列输出。例子:
你会怎么做呢?一个好的解决方案应该清晰而紧凑,但请记住“太聪明”这样的事情。
我同意这是错误的地方,但有时我们会被我们无法控制的力量所困。
谢谢你。