我试图第一次使用动态SQL - 现在我理解它的要点,但尝试使用动态SQL将参数输入临时表我得到"无效的列名称"当我只是尝试输入此文本作为不打算成为列的文本.
另外值得一提的是我在SQL Server 2005上运行它.
这是我执行的查询
SELECT ARCHV_FLAG,PATNT_REFNO,ACTIVE_NAMES,AINPT_REFNO INTO #TEMP FROM ACTIVE_NAMES WHERE PATNT_REFNO = 1 AND ARCHV_FLAG = 'C'
Fix SET @SQL = 'SELECT ARCHV_FLAG,PATNT_REFNO,'''+@TABLE +''' AS [ACTIVE_NAMES],'+ @PK + ' INTO #TEMP FROM ' + @TABLE + ' WHERE PATNT_REFNO = '+ CAST(@PATNT AS VARCHAR (100))+ ' AND ARCHV_FLAG = ''C'''
Run Code Online (Sandbox Code Playgroud)
提前谢谢了.
DECLARE
@SQL NVARCHAR(4000),
@SQL1 NVARCHAR(4000),
@TABLE VARCHAR (100),
@PK VARCHAR (50),
@PATNT INT
SET @PATNT = 1
CREATE TABLE #TEMP
(
ARCHV_FLAG VARCHAR (1),
PATNT_REFNO …Run Code Online (Sandbox Code Playgroud) 我正在屏蔽 SQL Server 2017 数据库中的一些数据。我用这个语句屏蔽了一个列:
ALTER TABLE lEmployee
ALTER COLUMN FirstName nvarchar(160)
MASKED WITH (FUNCTION = 'partial(2,"xxx",2)')
Run Code Online (Sandbox Code Playgroud)
我可以看到sys.columns这现在被掩盖了。
现在在应用程序中,数据没有显示为掩码(当以该用户身份登录时,数据也没有显示在数据库中)。我还运行了以下命令以确保用户没有此权限。
REVOKE UNMASK TO testuser
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议所需的最低权限,以便数据屏蔽按预期工作。
先感谢您
我是MYSQL的新手,但对SQL有基本的了解,我想说的是,如果我的参数没有设置(即null),那么将其设置为JM。
下面的脚本我出了什么问题/哪里出了问题?
提前致谢
CREATE DEFINER=`james`@`%` PROCEDURE `Project_Status`(IN engineer VARCHAR (5))
BEGIN
SELECT
PP.pid_full,
PP.description_small,
PP.project_status,
PP.est_comp_date as 'Est Comp Date',
EP.engineer
FROM
project_pid pp
JOIN
eng_project_hours EP on PP.pid_full = EP.pid_full
where engineer = ep.engineer;
IF engineer is null then update engineer = jm
set engineer = ep.engineer;
end if;
end
Run Code Online (Sandbox Code Playgroud)