我目前有一个批处理文件,我正在尝试让它在运行时将日期、时间和用户名写入SQL Server数据库。不幸的是,日期和时间在SQL Server数据库中显示为空,因为用户名已正确写入数据库。
正在运行的批处理文件如下所示:
<!-- :
Color 0A
@echo off
Set SearchDate = %Date%
Set UserSearchName = %UserName%
Set SearchTime = %Time%
sqlcmd -S LAPTOP\MSSQLSERVER02 -d AuditLog -E -Q " EXEC dbo.AuditLogCustomerIDTest4 '%SearchDate%', '%UserName%','%SearchTime%' "从批处理文件(dbo.AuditLogCustomerIDTest4)中引用的SQL子过程如下所示:
CREATE PROCEDURE dbo.AuditLogCustomerIDTest4
@SearchDate nvarchar (30) = Null,
@UserSearchName nvarchar (30) = Null,
@SearchTime nvarchar (30) = Null
AS
Insert Into UserSearches ([SearchDate],[UserSearchName],[SearchTime])
Values ((@SearchDate),(@UserSearchName),(@SearchTime));每个变量的数据类型为:
1. UserSearchName(varchar(255),null)
2. SearchDate(varchar(255),null)
3. SearchTime(varchar(255),null)有人知道为什么日期和时间值在SQL Server数据库中显示为空白吗?任何帮助都将不胜感激。
发布于 2020-02-09 20:12:48
我摆了一张和你的桌子一样的桌子,它也不能工作。UserName之所以会出现在表中,是因为您使用的是%UserName%而不是%UserSearchName%,所以它没有使用您创建的变量。我打开了profiler,您设置的值不会传递到存储过程中。因为变量没有值。去掉等号前后的空格,它就会起作用。
<!-- :
Color 0A
@echo off
Set SearchDate=%Date%
Set UserSearchName=%UserName%
Set SearchTime=%Time%
sqlcmd -S LAPTOP\MSSQLSERVER02 -d AuditLog -E -Q " EXEC dbo.AuditLogCustomerIDTest4 '%SearchDate%', '%UserSearchName%','%SearchTime%' "https://stackoverflow.com/questions/60135787
复制相似问题