我正在争论是否最好PRIMARY KEY使用Identity Columns,我们使用显式生成唯一 id 的 UDF 。
ID_Value由1id+1在插入时让表做一个哪个实现更有意义?
sql-server-2005 sql-server uniqueidentifier identity functions
我在 SQL 服务器上有这个查询,一个合并复制查询:
SELECT DISTINCT
b.tablenick,
b.rowguid,
c.generation,
sys.fn_MSgeneration_downloadonly
(
c.generation,
c.tablenick
)
FROM #belong b
LEFT OUTER JOIN dbo.MSmerge_contents c ON
c.tablenick = b.tablenick
AND c.rowguid = b.rowguid;
Run Code Online (Sandbox Code Playgroud)
估计的查询计划包括 3 个查询的信息:
实际的查询计划仅包括以下信息:
没有关于功能。为什么实际方案中缺少功能信息?
我尝试了这些选项:
SET STATISTICS PROFILE ON
SET STATISTICS XML ON
Run Code Online (Sandbox Code Playgroud)
它创建了一个实际计划,但它缺少第 2 部分和第 3 部分,这与我在 Management Studio 中使用实际查询计划选项时相同。
例如,如果我要使用 Profiler 来捕获有关函数调用的信息,我会选择哪些事件?
没有找到与查询计划特别相关的答案,但我分析了 SP:StmtStarting 和 SP:StmtCompleted 并显示了函数调用。
有人有用 T-SQL 编写的Theil-Sen 回归函数吗?
我找到了一个用 Perl 编写的,但我无法将其重新编码为 SQL。
我TYPE在 PostgreSQL 中发现。我有一个TABLE TYPE某些表必须尊重的(接口)。例如:
CREATE TYPE dataset AS(
ChannelId INTEGER
,GranulityIdIn INTEGER
,GranulityId INTEGER
,TimeValue TIMESTAMP
,FloatValue FLOAT
,Status BIGINT
,QualityCodeId INTEGER
,DataArray FLOAT[]
,DataCount BIGINT
,Performance FLOAT
,StepCount INTEGER
,TableRegClass regclass
,Tags TEXT[]
,WeightedMean FLOAT
,MeanData FLOAT
,StdData FLOAT
,MinData FLOAT
,MaxData FLOAT
,MedianData FLOAT
,Percentiles FLOAT[]
);
Run Code Online (Sandbox Code Playgroud)
我可以使用此模板创建表:
CREATE TABLE test OF dataset;
Run Code Online (Sandbox Code Playgroud)
我在API 中看到了很多选项,但我有点迷茫。我想知道是否可以将此类型分配给函数INPUT/OUTPUT参数。
假设我有一个FUNCTION调用process,它从数据集中接收记录样本TABLE source,处理它们,然后返回TABLE sink具有相同TYPE.
那就是我想知道是否有可能创建一个TYPE …
给定两个数字nand m,我想生成一系列的形式
1, 2, ..., (n-1), n, n, (n-1), ... 2, 1
Run Code Online (Sandbox Code Playgroud)
并重复它m几次。
例如,对于n = 3and m = 4,我想要以下 24 个数字的序列:
1, 2, 3, 3, 2, 1, 1, 2, 3, 3, 2, 1, 1, 2, 3, 3, 2, 1, 1, 2, 3, 3, 2, 1
---------------- ---------------- ---------------- ----------------
Run Code Online (Sandbox Code Playgroud)
我知道如何通过以下两种方法之一在 PostgreSQL 中实现此结果:
使用以下查询,该查询使用该generate_series函数,以及一些确保订单正确的技巧:
WITH parameters (n, m) AS
(
VALUES (3, 5)
)
SELECT
xi
FROM
(
SELECT
i, i …Run Code Online (Sandbox Code Playgroud) SQL 标准是否定义了具有副作用的函数?
例如,当您执行类似操作时,它们是否具有写入文件* 或更新表某些列中的值的功能
SELECT myfunction(params...);
Run Code Online (Sandbox Code Playgroud)
我有时会看到这些,但我很好奇 SQL 标准是否也这样做。
* 这不是专门针对 PostgreSQL 的问题。我只使用了我在 PostgreSQL 中看到的副作用示例。
我正在尝试获取一个 psql 函数,如果它存在,它将截断给定的表名。我一直在尝试多种功能,但到目前为止都没有奏效。这是代码:
CREATE OR REPLACE FUNCTION truncateIfExists(tableName TEXT)
returns void
as $$
BEGIN
EXECUTE format(
'IF EXISTS (
SELECT *
FROM information_schema.tables
WHERE table_name =' || tableName || '
)
THEN
TRUNCATE tableName;
END IF;
');
END;
$$language plpgsql
Run Code Online (Sandbox Code Playgroud)
现在,我可以使用硬编码名称使其在一个简单的过程中工作:
do $$
begin
IF EXISTS (SELECT *
FROM information_schema.tables
WHERE table_name = genre_epf)
THEN
TRUNCATE genre_epf;
END IF;
end
$$;
Run Code Online (Sandbox Code Playgroud)
但是我无法理解如何混合这两个查询。我在这里做错了什么?
我的一个查询在发布后以串行执行模式运行,我注意到在从应用程序生成的 LINQ to SQL 查询中引用的视图中使用了两个新函数。所以我将这些 SCALAR 函数转换为 TVF 函数,但查询仍然以串行模式运行。
早些时候我在其他一些查询中做了 Scalar 到 TVF 的转换,它解决了强制串行执行的问题。
这是标量函数:
CREATE FUNCTION [dbo].[FindEventReviewDueDate]
(
@EventNumber VARCHAR(20),
@EventID VARCHAR(25),
@EventIDDate BIT
)
RETURNS DateTime
AS
BEGIN
DECLARE @CurrentEventStatus VARCHAR(20)
DECLARE @EventDateTime DateTime
DECLARE @ReviewDueDate DateTime
SELECT @CurrentEventStatus = (SELECT cis.EventStatus
FROM CurrentEventStatus cis
INNER JOIN Event1 r WITH (NOLOCK) ON (cis.Event1Id = r.Id)
WHERE (r.EventNumber = @EventNumber) AND r.EventID = @EventID)
SELECT @EventDateTime = (SELECT EventDateTime FROM Event1 r
WHERE (r.EventNumber = @EventNumber) AND r.EventID = …Run Code Online (Sandbox Code Playgroud) performance sql-server parallelism functions query-performance performance-tuning
我需要编写一个函数来接收字符串字符并返回日期格式。例如输入是 20120101,我需要这个 2012-01-01。问题是可能存在一些不正确的输入,例如“2012ABCD”。在这种情况下,我希望函数返回一个固定日期,例如 2020-01-01。到目前为止我写的是:
Create Function ReturnDate
(@date varchar(8))
Returns date
as
begin
declare @result date
set @result = (select convert(date , @date,111))
if(@@ROWCOUNT>0) return @result
else return '2020-01-01'
return @result
end
Run Code Online (Sandbox Code Playgroud)
这不起作用,我只是不知道如何处理第二部分(当输入不正确时)。
functions ×10
sql-server ×7
postgresql ×3
t-sql ×2
datatypes ×1
identity ×1
parallelism ×1
performance ×1
sql-standard ×1