我在sql中使用SQL变量时遇到一些问题,当我使用此代码时,我不清楚如何正确使用它们:
DECLARE @Person VARCHAR(255)
SET @Person = 'Person'
print '----------------------------------------------------------------------------------------------------'
if object_id('@Person', 'U') is not null
begin
print ' Tabelle @Person wird entfernt';
drop table @Person;
end;
GO
它显示以下错误:
' @ Person'
附近的语法不正确
请帮我用变量编写正确的上述sql语句。
答案 0 :(得分:2)
你可以试试这个,这只适用于sql server:
<script>
var url='@(Url.Action("OnPostList","ControllerName"))';
var firstName= $("#txtFirstName").val();
var lastName= $("#txtLastName").val();
var isActive= $("#ddActive").val();
$.post(Url,{FirstName:firstName,LastName=lastName,IsActive=isActive},function(data){
var d = data.d;
var tblBody = $("#tblUsers > tbody");
tblBody.empty();
$.each(d, function (i, item) {
var modifiedDate = new Date(parseInt(item.ModifiedDate.substr(6)));
var $tr = $('<tr>').append(
$('<td>').html("<a href='javascript:void(0)' onclick='fnDialogShow(" + item.UserID + ")'>Edit</a>"),
$('<td>').text(item.FirstName),
$('<td>').text(item.LastName),
$('<td>').text(item.IsActive ? "Yes" : "No")
).appendTo(tblBody);
});
});
</script>
答案 1 :(得分:1)
从变量声明后面的代码中,看起来你正在尝试创建一个表变量。您的声明是针对字符串变量,而不是表变量。你的声明应该更像这样(几乎就像创建一个实际的表):
DECLARE @PersonTable TABLE (PersonColumn varchar(255));
INSERT @PersonTable (PersonColumn)
VALUES ('PersonColumnValue');
表变量仅存在于您创建它的会话中。它没有分配object_id,因此您无法检查它是否存在。要么你创造了它,要么你没有创造它。
另外,因为它只是一个变量而不是一个实际的表,所以你不能DROP它。但是你不需要,因为,当它创建的会话结束时,它将不再存在。
如果你想进入临时表与表变量的精细点,那就给自己一个啤酒吧,Google“t table table variable vs temp table”,然后在晚上安顿下来。
德语中潜在的可怕谷歌翻译版本:
Aus dem Code,der Ihrer Variablendeklaration folgt,scheint es,als ob Sie eine Tabellenvariableerstellenmöchten。 Ihre DeklarationistfüreineString-Variable,keine Tabellenvariable。 IhreErklärung完成了mehr so asehen(fast wieeineatsächlicheTabelleerstellen):
DECLARE @PersonTable TABLE(PersonColumn varchar(255)); INSERT @PersonTable(PersonColumn) WERTE('PersonColumnValue');
Die Tabellenvariable existiert nur innerhalb der Sitzung,in Sie sie erstellt haben。 Es wird keine object_id zugewiesen,所以dass Sie nicht nach ihrer Existenzsuchenkönnen。 Entweder hast du esrschaffen oder nicht。
Da es sich dabei nur um eine Variable und nicht umeinetatsächlicheTabellehandelt,könnenSiediesenichtlöschen。 AberSiemüssenesnicht,denn es wirdwiederaufhörenzuarisieren,wenn die Sitzung,in der esrstellt wurde,endet。
Wenn Sie in die feineren PunktevontemporärenTabellenoder Tabellenvariablengelangenmöchten,holen Sie sich einen Fall von Bier,Google“t Tabelle Variable vs temp Tabelle”,andsichfürdenAbend einzuleben。