如何解决tsql动态查询字符串构建,截断为255个字符
我知道当我得到答案时我会很尴尬,但是对于我的生命,我看不到我在以下程序中做错了什么。请不要使用其他方法来实现该过程,我只想知道字符串构建过程出了什么问题。预先感谢
CREATE PROCEDURE [sb_tutorials].[TempTablesLocalDynamic]
@name AS NVARCHAR(128),@dbname AS NVARCHAR(128)
AS
BEGIN
SET XACT_ABORT,NOCOUNT ON;
--The vars
DECLARE @select AS NVARCHAR(150),@from AS NVARCHAR(600),@replace AS NVARCHAR(10),@tsql AS NVARCHAR(MAX);
--Drop the table if exists
DROP TABLE IF EXISTS #test;
--Where lo = login owner and ou = owned user
SELECT @select = N'SELECT,[dp].[name],[dp].[principal_id],[dp].[sid],[dp].[owning_principal_id],[dp].[type],[dp].[default_schema_name] INTO #test';
SELECT @from = N' FROM [%DbName].[sys].[server_principals] AS [sp] INNER JOIN [sys].[database_principals] AS [dp] ON [sp].[sid] = [dp].[sid] WHERE [sp].[name] = N''%Name'';';
SELECT @replace = N'%DbName';
SELECT @from = REPLACE(@from,@replace,@dbname);
SELECT @replace = N'%Name';
SELECT @from = REPLACE(@from,@name);
--SET @tsql = CONCAT(@select,@from);
SET @tsql = @select+@from;
EXEC sp_executesql @tsql;
--SELECT *
-- FROM #test
-- ORDER BY [principal_id] ASC;
END;
GO
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。