Schema differences for scalar-valued function
還沒有人認領這個 Issue。
評估
研究方向
使用提供的 SSMS 函式定義、SqlPackage Extract 命令以及 Microsoft.SqlServer.DacFx 比較來重現此問題,使用的版本為 162.2.111。檢查純量值函式在擷取後如何被剖析和表示,然後確認 DeployReport 不再針對相同的 UETrim 函式回報 drop/create 作業,且擷取作業在沒有 TRIM 驗證錯誤的情況下完成。
由索引模型根據 Issue 內容生成。
描述
- SqlPackage or DacFx Version: 162.2.111
- .NET Framework (Windows-only) or .NET Core: net8.0
- Environment (local platform and source/target platforms): Win11&Server 2019
Steps to Reproduce:
-- SSMS>
USE MASTER;
GO
CREATE DATABASE dacFxRepro;
GO
USE dacFxRepro;
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[UETrim] (@text NVARCHAR(MAX)) RETURNS NVARCHAR(MAX) WITH SCHEMABINDING AS
BEGIN
RETURN (TRIM(NCHAR(0x09) + NCHAR(0x20) + NCHAR(0x0D) + NCHAR(0x0A) FROM @text))
END
GO
-- PS>
-- dotnet tool install --global microsoft.sqlpackage --ignore-failed-sources
-- $server = '.'
-- $database = 'dacFxRepro'
-- $connectionString = "server=$server;database=$database;Integrated Security=true;Connection Timeout=300;Trusted_Connection=True;Encrypt=False;Command Timeout=300"
-- $dacpacPath = '.\dacFxRepro.dacpac'
-- sqlpackage @('/Action:Extract', "/TargetFile:$dacpacPath", "/SourceConnectionString:$connectionString", "/p:IgnoreUserLoginMappings=true")
-- Output:
-- Connecting to database 'dacFxRepro' on server '.'.
-- Extracting schema
-- Extracting schema from database
-- *** Error validating element [dbo].[UETrim]: Incorrect syntax near TRIM.
-- Resolving references in schema model
-- Validating schema model for data package
-- Validating schema
-- Successfully extracted database and saved it to file '...\dacFxRepro.dacpac'.
When trying to compare the dacpac-file to a database using library Microsoft.SqlServer.DacFx, schema differences of function UETrim are reported, although the functions are identical in the database and in the dacpac file.
Same with sqlpackage:
-- PS>
-- $outputPath = 'report.xml'
-- sqlpackage @('/Action:DeployReport ', "/SourceFile:$dacpacPath", "/TargetConnectionString:$connectionString", "/OutputPath:$outputPath")
-- Output
--
--
--
--
--
-- <Item Value="[dbo].[UETrim]"
-- Type="SqlScalarFunction"/>
--
--
-- <Item Value="[dbo].[UETrim]"
-- Type="SqlScalarFunction"/>
--
--
--
Did this occur in prior versions? If not - which version(s) did it work in?
Yes.
(DacFx/SqlPackage/SSMS/Azure Data Studio)
- 主要語言
- GAP
- 星號
- 278
- 分支
- 46
- 平均合併
- 9 天 23 小時
- 30 天內合併 PR
- 2
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
microsoft/SqlScriptDOM 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 84/100
microsoft/SqlScriptDOM#228 ·
-
難度 2/5 1-3 小時 新手友好度 62/100
microsoft/SqlScriptDOM#183 ·
-
Add a Multiline option for CASE expressions (WHEN/THEN/ELSE on their own lines)可能已有人在做 @trg-alasdair 於 4 天前認領。 未關閉
難度 4/5 3-5 天 新手友好度 56/100
microsoft/SqlScriptDOM#226 · 1 個 reaction ·
-
難度 4/5 3-5 天 新手友好度 48/100
microsoft/SqlScriptDOM#225 ·
-
難度 3/5 1-2 天 新手友好度 58/100
microsoft/SqlScriptDOM#224 ·
查看 microsoft/SqlScriptDOM 的全部 Issue
相似的 Issue
-
customer issue
難度 2/5 1-3 小時 新手友好度 84/100
dolthub/go-mysql-server#3988 ·
維護者通常 1 天內回覆
-
bug
難度 2/5 1-3 小時 新手友好度 72/100
-
Temporal transforms put pre-epoch timestamps at `.999999` into the previous unit可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 2/5 1-3 小時 新手友好度 76/100
apache/iceberg#18371 · 1 則留言 ·
維護者通常 1 天內回覆
-
Oracle SQL INSERT export writes a BC `Date` as `'0-44-03-15 …'`, and Oracle refuses it on replay未關閉
難度 2/5 1-3 小時 新手友好度 75/100
libredb/libredb-studio#1498 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
go-mysql-org/go-mysql#1198 ·